商城网站建设设计介绍,深圳建设厅网站首页,如何上传wordpress,宣威市住房和城乡建设局网站文章目录题目描述思路 代码二刷题目描述
很 nice 的一道题#xff01;花的时间也不会很多#xff0c;还能复习复习 Lambda#xff5e;
思路 代码
核心思路#xff1a;如果 x y y x#xff0c;说明 x 应该在 y 前面时间复杂度#xff1a…
文章目录题目描述思路 代码二刷题目描述
很 nice 的一道题花的时间也不会很多还能复习复习 Lambda
思路 代码
核心思路如果 x y y x说明 x 应该在 y 前面时间复杂度排序所用的 O(NlogN)
class Solution {public String minNumber(int[] nums) {// 1. init数字转化成字符串存入数组中String[] strs new String[nums.length];for(int i 0; i nums.length; i) {strs[i] String.valueOf(nums[i]);}// 2. 如果 x y y x说明 x 应该在 y 前面Arrays.sort(strs, (x, y) - (x y).compareTo(y x));// 3. 排序结束按序拼接即可StringBuilder res new StringBuilder();for(String s : strs) {res.append(s);}return res.toString();}
}二刷
其实笔试遇到过但是也一直没写得这么规范。开一个数组来存储字符串可以节约很多效率而非用到一次转化一次再利用 Arrays.sort Lambda就很好看
class Solution {public String minNumber(int[] nums) {String[] numsString new String[nums.length];for(int i 0; i nums.length; i) {numsString[i] String.valueOf(nums[i]);}Arrays.sort(numsString, (a, b) - (a b).compareTo(b a));StringBuilder ans new StringBuilder();for(String element : numsString) {ans.append(element);}return ans.toString();}
}