CC150 上面重要的题目总结】的更多相关文章

第一章 : 全部重要 (1.6, 1.7 Leetcode上有). 1.5 面A碰到 (string compression) 1.7面Z碰到 (set 0) 1.8面Bigfish碰到 (string rotation) 第二章 (2.4, 2.5 Leetcode上有): 全部重要. 2.2面Bigfish碰到 (find kth) 第三章 : 感觉就是3.2 (min stack), 3.5 (two stack queue) 重要.两道题面M被问到过.3.6  (sort stack)感…
面试题18.1:编写一个函数,将两个数字相加.不得使用+或其他算数运算符. package cc150.high; public class Add { public static void main(String[] args) { // TODO 自动生成的方法存根 } public int add(int a,int b){ //将两个数字相加,不得使用+或者其他算数运算符 if(b == 0) return a; int sum = a^b; //相加,但不进位 int carry =…
面试题11.1:给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B.编写一个方法,将B合并入A并排序. package cc150.sort_search; public class MergeTwoSortedArr { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] a = {1,3,5,7,9,11,13,15,0,0,0,0,0,0,0,0}; int[] b = {0,2,4,6,8,10,1…
面试题4.1:实现一个函数,检查二叉树是否平衡.在这个问题中,平衡树的定义如下:任意一个结点,其两颗子树的高度差不超过1. 思路:两个方法,第一种速度较快 package cc150; public class Balance { public static void main(String[] args) { // TODO 自动生成的方法存根 } public class TreeNode { int val = 0; TreeNode left = null; TreeNode right…
面试题17.1:编写一个函数,不用临时变量,直接交换两个数. 思路:使用差值或者异或 package cc150.middle; public class Exchange { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] a= {1,2}; Exchange ec = new Exchange(); int[] b= ec.exchangeAB(a); System.out.println(b[0]); Sys…
package cc150.thread_lock; public class RunnableThreadExample implements Runnable{ public int count = 0; public static void main(String[] args) { // TODO 自动生成的方法存根 RunnableThreadExample instance = new RunnableThreadExample(); Thread thread = new Thre…
package cc150.java; import java.util.Iterator; public class CircularArray { public static void main(String[] args) { //实现一个类似数组的数据结构,可以进行高效的旋转 // TODO 自动生成的方法存根 CircularArray ca_out = new CircularArray(); circularArray<Integer> ca = ca_out.new circu…
面试题9.1:有个小孩正在上楼梯,楼梯有n个台阶,小孩一次可以上1阶.2阶或者3阶.实现一个方法,计算小孩有多少种上楼梯的方式. 思路:第4个数是前三个数之和 注意:能不能使用递归,能不能建立一个很大的数组来存储传递的参数(因为可能有空间的限制),要%1000000007防止超出范围 package cc150.recursion_dp; public class GoUpstairs { public static void main(String[] args) { // TODO 自动生成…
面试题7.2:三角形的三个顶点上各有一只蚂蚁.如果蚂蚁开始沿着三角形的边爬行,两只或三只蚂蚁撞到一起的概率有多大?假定每只蚂蚁会随机选一个方向,每个方向被选到的几率相等,而且三只蚂蚁的爬行速度相同. package cc150.intelligence; public class Ants { public static void main(String[] args) { // TODO 自动生成的方法存根 Ants at = new Ants(); System.out.println(at…
面试题5.1:给定两个32位的整数N与M,以及表示比特位置的i与j.编写一个方法,将M插入N,使得M从N的第j位开始,到第i位结束.假定从j位到i位足以容纳M,也即若M=10011,那么j与i之间至少可容纳5个位.例如,不可能出现j=3和i=2的情况,因为第3位和第2位之间放不下M. 输入:N=10000000000,M=10011,i=2,j=6,最后是第0位 输出:N=10001001100 package cc150.bit; public class UpdateBits { //面试题…