Codejam之Tidy Numbers
来源:互联网 发布:ipad下载软件付费 编辑:程序博客网 时间:2024/05/22 17:21
问题描述
8,123,555,224488这种数字以非递减的顺序排列的叫做tidy numbers
20,321,495,99999990这种不是
给一个值,要求输出该值之前的最后一个tidy number
问题解决
大数据集中的测试用例如下,如果将值逐次减一,判断是否符合要求太没有效率。
可以遍历数字串,找到第一个nums[i]>nums[i+1]的位置,将nums[i]的值减一,后面的值都赋值9
nums[i]的值减一后,其前面的值可能大于nums[i],再次检查。
也可以直接找i前面等于nums[i]的最左边的位置
811112333445578899
999999999999999999
430315219406019114
11333445538
10999999999
21233455667777788
839744037703188439
int[] nums = new int[aline.length()];for(int i=0;i<aline.length();i++) nums[i]=aline.charAt(i)-48;int index = check(nums,0,nums.length-1);while(index!=-1){ index = check(nums,0,index);}String res = "";int start = 0;//处理09999这种情况,把前面的0去掉while(nums[start]==0){ start++;}for(int i=start;i<nums.length;i++){ res+=nums[i];} writer.write("Case #"+k+": "+res+'\n');
check的实现
private static int check(int[] nums,int lo,int hi){ int index = -1; for(int i=lo;i<hi;i++){ if(nums[i]>nums[i+1]){ nums[i]=nums[i]-1; for(int j=i+1;j<=hi;j++) nums[j]=9; index=i; break; } } return index;}
1332
第一次check(0,3)后,返回的index=2
1329
check(0,2)后,返回index=1
1299
check(0,1),返回index=-1,终止循环
阅读全文
0 0
- Codejam之Tidy Numbers
- Problem B. Tidy Numbers
- codejam-Round1A-2008-Numbers
- Google CodeJam习题:Alien Numbers
- Codejam 之 初章
- Codejam之Bathroom Stalls
- Codejam之Alphabet Cake
- Codejam之Ratatouille
- Code Jam 2017 Qualification Round Problem B. Tidy Numbers
- 【google code jam Qualification Round 2017】【Tidy Numbers】【搜索】
- Codejam之初章 python版
- Codejam之初章 python decorator 版
- tidy试用
- tidy 相关
- ThoughtWorks CodeJam
- 另一个CodeJam
- tidy常用参数
- Tidy乱码问题
- 截取IP地址
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- Reading Note: Progressive Growing of GANs for Improved Quality, Stability, and Variation
- 使用MVP注册登录模块+封装的OKhttp,拦截器+QQ第三方登录+RecyclerView+SpringView上拉加载下拉刷新网络数据
- 反射机制基础解析
- Codejam之Tidy Numbers
- 写冒泡排序可以排序多个字符串。
- HTML5使用<ruby>和<rt>来实现拼音标注效果
- 学习笔记TF064:TensorFlow Kubernetes
- Raft一致性框架_Copycat基础学习(一)
- Java互联网面试题之有XX网(互联网金融C轮企业)面试题
- 配置docker连接国内镜像库(linux)
- window下如何杀死指定端口 的进程
- Nginx基础介绍及源码编译nginx