最短无序连续子数组(在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。)

在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。
注意:
n 是正数且在32为整形范围内 ( n < 231)。

示例 1:
输入:
3
输出:
3

示例 2:
输入:
11
输出:
0
说明:
第11个数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是0,它是10的一部分。

 

public class test {
    public static void main(String[] args) {
        Solution s = new Solution();
        int n = 200;
        int a = s.findNthDigit(n);
        System.out.println(a);
    }
}

class Solution {
    public int findNthDigit(int n) {
        int i=0;
        int res=0;
        int temp=n;
        //判断n为几位数字
        while(temp > 9*Math.pow(10,i)*(i+1)){//i+1位数共有多少个数字
            temp -= 9*Math.pow(10,i)*(i+1);
            i++;
        }

        for(int j=0;j<i;j++){
            res += 9*Math.pow(10,j);
        }
        res += temp/(i+1);//得到数字包含第n个数字
        if(temp%(i+1)==0)
            return Integer.parseInt((res+"").charAt(i)+"");
        else
            return Integer.parseInt(((res+1)+"").charAt(temp%(i+1)-1)+"");
    }
}

 

# P8087 『JROI-5』Interval ## 题目背景 小 C 喜欢带有区间操作的数据结构,因为这样的题总会有一档好写的 $\mathcal{O}\left(n^2\right)$ 部分分。 ## 题目描述 **本题读入量较大,建议使用较快的读入方式,可以参考 [赛时公告板](https://www.luogu.com.cn/paste/lueudpd5)** 小 C 有一个长度为 $n$ 的序列 $a$,第 $i$ 项为 $a_i$。 $a$ 是一个 $1\sim n$ 的排列(即 $1\sim n$ 在 $a$ 中各出现一次)。 定义 $\operatorname{Mex}_{l,r}$ 为 $\{a_l,a_{l+1}, \cdots,a_{r-1},a_r\}$ 中**没有出现过的小正整数**。 例如,$\operatorname{Mex}\{2,3\}=1,\operatorname{Mex}\{1,2,3\}=4$。 小 C 还有一个长度为 $n$ 的数列 $f$。 定义一个区间 $\left[l,r\right]$ 是合法的当且仅当 $$f_{r-l+1}< \operatorname{Mex}_{l,r}$$ 小 C 希望你告诉他,的合法区间的长度是多少,特别的,如果没有区间合法,则输出 `0`。 ## 输入格式 第一行一个正整数 $n$。 第二行 $n$ 个正整数 $a_1,a_2,\cdots,a_n$。 第三行 $n$ 个正整数 $f_1,f_2,\cdots,f_n$。 ## 输出格式 一行一个整数,表示的合法区间长度。 ## 输入输出样例 #1 ### 输入 #1 ``` 5 2 3 1 5 4 2 2 3 4 5 ``` ### 输出 #1 ``` 3 ``` ## 输入输出样例 #2 ### 输入 #2 ``` 5 2 3 1 5 4 1 2 2 4 5 ``` ### 输出 #2 ``` 1 ``` ## 输入输出样例 #3 ### 输入 #3 ``` 5 1 3 4 2 5 6 7 8 9 10 ``` ### 输出 #3 ``` 0 ``` ## 输入输出样例 #4 ### 输入 #4 ``` 见附件 ``` ### 输出 #4 ``` 见附件 ``` ## 说明/提示 【样例解释】 对于 #1,容易发现 $\left[1,3\right]$ 是的合法区间。 对于 #2,容易发现 $\left[3,3\right]$ 是的合法区间。 对于 #3,容易发现没有合法的区间。 --- 对于 $10\%$ 的数据,满足 $1\leq n\leq 100$。 对于 $20\%$ 的数据,满足 $1\leq n\leq 1000$。 对于另外 $10\%$ 的数据,满足 $f$ 不升,即满足 $f_1\geq f_2\geq\cdots\geq f_n$,且 $1\leq n\leq 10^6$。 对于 $100\%$ 的数据,满足 $1\leq n\leq 4\times 10^6,1\leq f_i\leq 10^9$。
最新发布
10-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值