Leetcode 670 最大交換

2021-10-25 15:22:31 字數 453 閱讀 6945

給定乙個非負整數,你至多可以交換一次數字中的任意兩位。返回你能得到的最大值。

class solution 

//以上幾句完全可以由下句替代 string b = to_string(num);

for(int i=0;i=b[temp])

}if(i!=temp &&b[i]!=b[temp])

}

//再將b輸出成乙個數

//以下幾句,完全可以由該句取代 return stoi(b);

int sum=b[b.size()-1];

for(int i=b.size()-2; i>=0; i--)

return sum;

}};

對c++現成函式知道太少了, 整數變成陣列,我是自己本方法存到陣列實現了,之後看到別人的答案才知道了 stoi 這類函式。 需要積累啊

LeetCode 670 最大交換

class solution 將num的各個位上的值存於向量中 int len res.size int k 0 for int i len 1 i 0 i 求出位置j i 1之前 包括j 的最大值 if res i 0 i 重新算出最大值 return n 思路 倒著推,因為將num值的各個位的值...

LeetCode 670 最大交換

題目 給定乙個非負整數,你至多可以交換一次數字中的任意兩位。返回你能得到的最大值 示例1 輸入 2736 輸出 7236 解釋 交換數字2和數字7。示例2 輸入 9973 輸出 9973 解釋 不需要交換。思路 先根據給定的數字,把數字的每一位拆分並放到 list 集合中,並且利用 list中的數字...

leetcode 670 最大交換(陣列)

1 將較大的數盡可能排前面 複雜度分析 時間複雜度 o n 2 空間複雜度 o n class solution 存在更大元素 2 排序 1 先得到排序後的字串s sort 逆序 2 從前到後比較s和sort,找到第乙個不同的位置i,其中s i s sort i 設char c s sort i 3...