【中兴笔试题】外星母舰
生活随笔
收集整理的這篇文章主要介紹了
【中兴笔试题】外星母舰
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
解題思路
定義排序規則,每個數字按照二進制1的個數進行排序,當個數相等時,按照數字大小進行排序,然后輸出排序后數組的前M個字符。
import java.util.Arrays;public class Solution {class Data implements Comparable<Data> {int num;int one;@Overridepublic int compareTo(Data o) {// TODO Auto-generated method stubif (this.one > o.one) {return -1;} else if (this.one < o.one) {return 1;} else {return this.num > o.num ? -1 : (this.num < o.num ? 1 : 0);}}}public int numOf1(int n) {int count = 0;while (n != 0) {n &= n - 1;count++;}return count;}public int[] fun(int num, int element, int[] streamNum) {if (streamNum == null || streamNum.length == 0 || num == 0 || element == 0)return new int[1];Data[] datas = new Data[num];for (int i = 0; i < num; i++) {Data d = new Data();d.num = streamNum[i];d.one = numOf1(streamNum[i]);datas[i] = d;}Arrays.sort(datas);int[] result = new int[element];for (int i = 0; i < element; i++) {result[i] = datas[i].num;}return result;}public static void main(String[] args) {Solution solution = new Solution();int[] result = solution.fun(10, 3, new int[] { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 });System.out.println(Arrays.toString(result));} }總結
以上是生活随笔為你收集整理的【中兴笔试题】外星母舰的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 素材网 持续更新
- 下一篇: 无聊 用Python 画个小心心 tu