当前位置: 首页 > news >正文

客厅装修效果图片大全网站排名优化价格

客厅装修效果图片大全,网站排名优化价格,如何做自己的独立的网站,中国城市建设官方网站文章目录 738.单调递增的数字思路分析代码实现 738.单调递增的数字 题目链接🔥🔥 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。 (当且仅当每个相邻位数上的…

文章目录

  • 738.单调递增的数字
    • 思路分析
    • 代码实现

738.单调递增的数字

题目链接🔥🔥
给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。
(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)

示例 1:
输入: N = 10
输出: 9

示例 2:
输入: N = 1234
输出: 1234

示例 3:
输入: N = 332
输出: 299
说明: N 是在 [0, 10^9] 范围内的一个整数。

思路分析

暴力解法会超时。
题目要求小于等于N的最大单调递增的整数,那么拿一个两位的数字来举例。

例如:98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]–,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。

这一点如果想清楚了,这道题就好办了。

此时是从前向后遍历还是从后向前遍历呢?

从前向后遍历的话,遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]减一,但此时如果strNum[i - 1]减一了,可能又小于strNum[i - 2]。

这么说有点抽象,举个例子,数字:332,从前向后遍历的话,那么就把变成了329,此时2又小于了第一位的3了,真正的结果应该是299。

那么从后向前遍历,就可以重复利用上次比较得出的结果了,从后向前遍历332的数值变化为:332 -> 329 -> 299

确定了遍历顺序之后,那么此时局部最优就可以推出全局,找不出反例,试试贪心。

代码实现

C++代码如下:

class Solution {
public:int monotoneIncreasingDigits(int N) {string strNum = to_string(N);// flag用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行int flag = strNum.size();for (int i = strNum.size() - 1; i > 0; i--) {if (strNum[i - 1] > strNum[i] ) {flag = i;strNum[i - 1]--;}}for (int i = flag; i < strNum.size(); i++) {strNum[i] = '9';}return stoi(strNum);}
};

我的:
我的是从前向后遍历的,用一个maxindex来记录目前出现过的最大的数(如果有332这种,就记录第一个3,这样结果是299,否则结果是329就不对了),其实maxindex就是记录一旦出现递减的数,该从哪里开始自减。

class Solution {
public:int monotoneIncreasingDigits(int n) {string strn=to_string(n);int maxindex=0;for(int i=1;i<strn.size();i++){if(strn[i]>strn[i-1]) maxindex=i;if(strn[i]<strn[i-1]){strn[maxindex]--;for(int j=maxindex+1;j<strn.size();j++) strn[j]='9';}}int result=stoi(strn);return result;}
};

http://www.hrbkazy.com/news/22993.html

相关文章:

  • 如何做充值网站高质量内容的重要性
  • 中铁建设企业门户小红书seo排名帝搜软件
  • 政府网站必须做等保百度后台登陆入口
  • 如何做论文网站教育培训报名
  • 什么做网站的公司好互联网销售平台有哪些
  • 制作网站复杂吗网页设计模板素材图片
  • 做app网站公司名称网上怎么找客户资源
  • 专门做评测的网站有哪些seo网站seo
  • 珠海企业网站推广服务seo排名计费系统
  • 如何建网站的步骤网络推广的方法有
  • 珠海移动网站建设公司引流最好的推广方法
  • windows网站模板深圳网站seo哪家快
  • 国内做的比较好的网站电脑培训中心
  • 阿拉伯语网站怎么做百度seo排名优化如何
  • 做搜狗pc网站优化首廊坊seo网络推广
  • 河南郑州是几线城市东莞seo建站
  • 安徽服饰网站建设产品市场推广方案
  • 做效果图的网站有哪些软件有哪些如何做线上推广
  • 网站建设08keji永久免费crm客户管理系统
  • 视频解析网站百度投诉热线中心客服
  • 哪有做网站的 优帮云深圳广告投放公司
  • 长沙企业网站建设个人网站网址
  • 做网站的公司首选智投未来软件培训班
  • 小说网站要怎么做市场调研的方法
  • 关于政府网站建设的讲话台州做优化
  • 牛商网做网站的思路深圳百度推广联系方式
  • 微信微网站是什么格式搜索引擎优化seo培训
  • 做齐鲁油官方网站商品推广与营销的方式
  • 做idc销售怎样建网站今日新闻内容
  • 设计型网站案例百度seo公司电话