Leetcode笔记(整理中.......)

1、树的层序遍历

     使用两个List 数组 或者 两个queue队列,交替进行,将遍历到的一层放在第一个里面,之后再将遍历到的第二层放在第二个里面。

2、将一个无符号整数的二进制表示形式逆向输出

     需要将int n(每次向右移一位)的每一位从右向左与1相与(int 1每次向左移动一位),存储结果每次向左移动一位(若 n的当前位为1,则将answer与1相或),直到n的每一位都被遍历到。

3、求一个无符号整数的二进制表示中,1的个数

     可以利用2中的方法,每次将整数n的当前位与1相与,若结果为1,则count+1,直到n的所有位都被遍历到为止。

     java中移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

4、对于一个整型数组 int[] nums,求其所有数字连接成为一个整数字符串后,得到的字符串结果的最大值

     利用java中自带的 Arrays.sort() 方法,对字符串数组进行排序(将整型数组转换为字符串数组),由于这种排序不是简单的比较大小,而是比较出两个字符串连接后的排序结果使得两者的连接字符串最大。因此,需要改写 compare方法, Comparator<String> comp=new Comparator<String>(){重写compare方法}; 最后将排序得到的字符串数组从高位到低位进行连接后输出。

 

5、List<T> list=new ArrayList<T>(); Queue<T> queue=new LinkedList<T>(); 在java中,List和Queue都是容器

posted @ 2015-10-21 10:43  江湖凶险  阅读(201)  评论(0编辑  收藏  举报