题目描述:给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
示例1:
1 | 输入:nums = [10,2] |
示例2:1
2输入:nums = [3,30,34,5,9]
输出:"9534330"
题解方法一:逐位查找
算法思路
1、设数组 numsnumsnums 中任意两数字的字符串为 xxx 和 yyy ,则规定 贪心策略。
- 若拼接字符串 x+y>y+x ,则 x “大于” y 。
- 反之,若 x+y<y+x ,则 x “小于” y 。
x “小于” y 代表:排序完成后,数组中 x 应在 y 左边;“大于” 则反之。
算法流程:
初始化: 字符串列表 strs ,保存各数字的字符串格式。
列表排序: 根据贪心策略对 strs 进行从大到小排序。
返回值: 拼接 strs 中的所有字符串,并返回。
代码实现如下:
1
2
3
4
5
6
7
8function majorityElement(nums) {
let res = 0;
while (n) {
res += n & 1;
n >>= 1;
}
return res;
}
总结:大功告成✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️✌️
参考链接: