首页 > 其他分享 >P1138 第 k 小整数

P1138 第 k 小整数

时间:2024-03-13 21:32:01浏览次数:21  
标签:10001 记录 int 整数 P1138 num 排序

首先第一想到的是排序,想着刚好练练各种排序,然后看到每个数只计算一次,还全是正整数,于是直接读的时候记录读到啥数字,专门拿一个数组(代码中的b)记录,最后要第k个,直接数就可以,不成立的情况中间筛选了。

#include<stdio.h>

int main(){
    int num,k,a[10001]={0},b[10001]={0},tmp,count=0;
    scanf("%d %d",&num,&k);

    for(int i=1;i<=num;i++)
        {
            scanf("%d",a+i);
            tmp=a[i];
            if(!b[tmp]) count++;
            b[tmp]=1;

        }
    if(count<k) {printf("NO RESULT");return 0;}
    count=0;
    for(int i=1;i<=10001;i++)
    {
        if(b[i])
            if(count==k-1)
                {printf("%d",i);return 0;}
            else
                count++;
    }

}

后续考虑有不全是正数的情况,以及把排序练习好。

标签:10001,记录,int,整数,P1138,num,排序
From: https://blog.csdn.net/ykg_kdr/article/details/136692096

相关文章

  • 343. 整数拆分c
    关键就在于,分还是不分是个问题。intmax(inti,intj){if(i>j)returni;returnj;}intintegerBreak(intn){int*dp=(int*)malloc(sizeof(int)*(n+4));dp[0]=0,dp[1]=0,dp[2]=1,dp[3]=2;for(inti=4;i<=n;i++){intmaxn=0;for......
  • LeetCode 7.整数反转
    题目:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−231,231−1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出:321示例2:输入:x=-123输出:-321示例3:输入:x=......
  • 【LeetCode】整数转罗马数字 C语言 | 此刻,已成艺术(bushi)
    Problem:12.整数转罗马数字目录思路解题方法复杂度Code思路暴力破解+转换解题方法由思路可知复杂度时间复杂度:$O(n)$空间复杂度:$O(1)$Codechar*intToRoman(intnum){char*s=(char*)malloc(sizeof(char)*4000),*p=s;while(num>0)......
  • C 语言整数单链表的表示和实现 数据结构课程设计报告
     数据结构课程设计报告专业名称:计算机科学与技术 课程名称:数据结构        实训题目:整数单链表的表示和实现                           实训环境:C语言实现(DevC++)                    ......
  • 代码随想录算法训练营第四十天|● 343. 整数拆分 ● 96.不同的二叉搜索树
    整数拆分 题目链接:343.整数拆分-力扣(LeetCode)思路:第一步想的是用递归做,intdigui(intn){if(n==1)returnn;returnmax((n/2)*(n-n/2),digui(n/2)*digui(n-n/2));}可惜的是题目并没有规定一定要分成两份,因此这个思路是不对的,但已经初窥门径。......
  • 代码随想录算法训练营第四十天 | 96.不同的二叉搜索树,343. 整数拆分
    343.整数拆分 已解答中等 相关标签相关企业 提示 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k>=2 ),并使这些整数的乘积最大化。返回 你可以获得的最大乘积 。 示例1:输入:n=2输出:1解释:2=1+1,1×1=1。......
  • 243. 一个简单的整数问题2
    #include<iostream>#include<stdio.h>#include<algorithm>#include<string>#defineFor(i,j,n)for(inti=j;i<=n;++i)usingnamespacestd;typedeflonglongLL;constintN=1e5+5;intn,m;LLa[N];structno......
  • 从小到大获取整数的所有因数
    一种朴素的Rust语言的算法如下:fnget_all_factors_normal(n:u64)->Vec<u64>{letn_sqrt=(nasf64).sqrt().floor()asu64;letmutres=Vec::new();foriin1..=n_sqrt{ifn%i==0{//println!("{}",i);......
  • 整数二分算法(自用)
    1.思想对于一个已排序数组,找到一个点,使得数组被分为两部分,即此点左部和右部(点在左部或右部中的一个),比如数组中小于等于某数x的部分与大于的部分;对于整数二分而言两个范围之间是没有空隙的,即左部分的边界x的下一个数一定在右部分。我们可以根据题目选择多种方法二分数组,大类上分......
  • 基于FPGA的9/7整数小波变换和逆变换verilog实现,包含testbench
    1.算法运行效果图预览 将测试结果导入到matlab显示   2.算法运行软件版本vivado2019.2,matlab2022a 3.算法理论概述      小波变换是一种在信号处理中广泛应用的数学工具,它能够提供信号在不同尺度和位置上的信息。在图像处理、数据压缩、噪声消除等领域,小......