leetcode:670. 最大交换(数学)

题目:

在这里插入图片描述

分析:

非负整数
先判断整个数是不是降序。

找有没有比第一个数大的,第二个?,第三个?,依次类推

当然可以先排序。

代码:

int main()
{
 int num=98368;
 if(num<=10) return num;
 string ss=to_string(num);
 int ok=1;
 for(int i=1;i<ss.length();i++)
 {
  if(ss[i]>ss[i-1]) {
   ok=0;
   break;
  }
 }
 if(ok) return num;
 for(int i=0;i<ss.length()-1;i++)
 {
  int maxx=ss[i];
  int loca;
  for(int j=i+1;j<ss.length();j++)
  {
   if(ss[j]>=maxx) {
    maxx=ss[j];
    loca=j;
   }
  }
  if(maxx!=ss[i])
  {
   ss[loca]=ss[i];
   ss[i]=maxx;
   break;
  }
 }
 return atoi(ss.c_str());
}
发布了196 篇原创文章 · 获赞 126 · 访问量 4655

猜你喜欢

转载自blog.csdn.net/weixin_42721412/article/details/104543693