首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

单调递增数字

单调递增数字 给定一个非负整数N,找出小于或等于N的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。当且仅当每个相邻位数上的数字x和y满足x <= y时,我们称这个整数是单调递增的。...10) * 10 - 1 = 1330 - 1 = 1329 // 第二次循环就是 1300 - 1 = 1299 } return num; }; 思路 整体思路就是将数字当作字符串...通常来说可以把数字作为字符串来遍历处理,上面的题解是使用纯数字的方式去做,首先定义i作为标记记录遍历到到的位置,之后定义num作为待处理的数字,定义循环只要能够继续取出两位数就继续循环,这是循环的终止条件...,此外能够使用乘法的地方就尽量不要使用除法,在js中int32如果不能够整除则会自动转双精度64,所以在很多地方都需要强制转数值为int32,之后取出两位数,这里~~是使用位运算强制转了整型,在之后将i...* 10定义到下一位,如果低一位上的值大于大于高一位上的值,那么就将数值在第i位以后的值都变成0,然后减1即可达到上述的将此位减1以及之后的数字都变为9,可以参考上边的示例,在循环结束后返回处理的数字即可

1.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js生成年月+字母+五位数的编码,实现字母递增与五位数序号递增

    这里写目录标题 需求: 如图所示: 实现: 字母递增: 序号递增: 核心代码: pass:给后人留个坑吧: 需求: 1、新增数据要求生成的编码格式为YYYYMMA00001。...例如:202209A00001 2、序号 00001递增,当序号大于99999时,字母A递增。例如:A99999 时递增为B00001 如图所示: 实现: 年月就不说了。获取一下补个零就行了。...字母递增: // 获取字母(A大写 a小写) // index 从0开始 let letter = String.fromCharCode("A".charCodeAt(0) + index);...; // 获取字母(A大写 a小写) let letter = String.fromCharCode("A".charCodeAt(0) + index); 序号递增...把字母递增和序号递增单独拧出来还是可以用的。。。

    90920

    iOS UIStepper实现数量递增递减

    或-1的操作,如果长按的话,长按开始,开启定时器,递增或者递减,长按结束,定时器停止。...以上2种方式虽然都能实现我们的需求,但是我们会发现,这样做或许代码不多,但逻辑上总感觉不爽(我不太爽),再一个不爽的原因是这2种方式都只能实现匀速的递增和递减,因为timer的TimeInterval是固定的...,而一般我们点住不放的话,应该递增递减的速度是加快的,匀速的真的不好用......stringWithFormat:@"%d",(int)stepper.value]; } 然后效果是这样的: FBA315DE-185F-476E-92CB-07E9602E512F.png 点击 加 减 按钮也能实现数值的递增递减...,并且递增递减不是匀速的,而是越来越快的...瞧,现在多爽!

    1.2K50

    单调递增数字

    单调递增数字:https://leetcode-cn.com/problems/monotone-increasing-digits/ 一起刷题吧 一、题意分析 输入:非负整数(大于等于0) 输出:...从前往后遍历的思路也很简单,遍历找到第一个不满足递增条件的位置,将此位置减 1,此位置之后的数值全变成 9 即可。...但需要注意的是,因为涉及到有一个位置会减 1,所以可能出现减 1 之后,与前一位不再是递增关系了,因此当我们找到了第一个不满足递增条件的位置后,要从当前位置往前找,找到第一个满足减 1 之后仍然满足递增条件位置...也就是说两个寻找: 从前往后找到第一个不满足递增条件的位置 从后往前找到第一个满足减 1 后仍然满足递增条件的位置 找到位置之后的元素变成 9,当前位置减 1,就是最终结果 实现参考代码如下: class...N //= 10 digits = digits[::-1] marker = len(digits) # marker是第一个需要改成9的数字

    72520
    领券