摘要:
这道题的关键是知道找到尾节点的前一个节点必须遍历,而且这样做了之后总的时间复杂度还是O(1),以及如何不破坏链表删除一个已知节点 阅读全文
posted @ 2019-09-30 10:53
CrazyJack
阅读(169)
评论(0)
推荐(0)
摘要:
书中方法:这道题的一个陷阱在于不能用int或者long去存储你要打印的数,然后用打印函数打印,因为这个数可能会很大。如果加1后超出了最大的n位数,就不打印了。用最高位是否进位判断是否结束,打印的时候注意不要打印出前面可能出现的0. public void print(int n){ if(n=0; 阅读全文
posted @ 2019-09-30 10:34
CrazyJack
阅读(218)
评论(0)
推荐(0)
摘要:
书中方法:这道题要注意底数为0的情况。double类型的相等判断。乘方的递归算法。 public double power(double base, int exponent){ //指数为0 if(exponent == 0){ return 1.0; } //底数为0 if(isEqual(ba 阅读全文
posted @ 2019-09-30 10:20
CrazyJack
阅读(137)
评论(0)
推荐(0)
摘要:
书中方法一:对于每一位,用1求与,如果为1表明该位为1。一共要进行32次,int4字节32位。 public int check(int a){ int result = 0; int judge = 1; int count = 1; //左移31次,一共32位 while(count 阅读全文
posted @ 2019-09-30 10:13
CrazyJack
阅读(152)
评论(0)
推荐(0)
摘要:
书中方法一:递归,这种方法效率不高,因为可能会有很多重复计算。 public long calculate(int n){ if(n 阅读全文
posted @ 2019-09-30 10:10
CrazyJack
阅读(182)
评论(0)
推荐(0)
摘要:
(找递增排序旋转数组中的最小数字) 书中方法:这种题目就是要寻找数组的特点,然后根据这个特点去写。旋转后的递增数组分为两段递增序列,我们找到中点,如果比第一个元素大,表示在第一段递增序列里,如果比第一个元素小,表示在第二段递增序列里。这样就可以用递归或迭代完成。需要注意的一点是如果中间元素和第一个元 阅读全文
posted @ 2019-09-30 10:06
CrazyJack
阅读(116)
评论(0)
推荐(0)
摘要:
书中方法:队列是先进先出的,栈是先进后出的,试想把一串数压入A栈,接着一个个出栈并压入B栈,便会完成“头在下”到“头在上”的转变。B栈内还有元素时,直接出栈表示出列,如果没有元素则将A栈内元素压入B栈内。这个没有测试,省略了异常抛出。 题目7扩展:用两个队列实现实现栈 书中方法:由于用两个队列并不能 阅读全文
posted @ 2019-09-30 09:46
CrazyJack
阅读(132)
评论(0)
推荐(0)

浙公网安备 33010602011771号