题目1

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

        问题在于缩小搜索范围,要找到正确的切入点,左上方和右下方不行,因为每次数值的不合适,都会有多种选择。而左下方和右上方的搜索方式,每次都可以剔除一行或者一列,这样才能把范围不断缩小。
        搜索的终止条件应该为超出范围。

题目2

题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

        首先数出来空格数量,如果是没有空格可以直接返回,如果有空格,整个字符串就应该要多准备2n个(n个空格,替换后占用3n,已有n,所以还额外需要2n)空间,然后从后往前开始填充就可以了。
        java中,hello的toCharArray,char[]后,得到的size是5.不是6,没有'\0'
                                                        
        在这个图中,a.length()与b.length是一样的,都为5.
        java中,hello的toCharArray,char[]后,得到的size是5.不是6,没有'\0'
                                                        
                                                        

                                                        

题目3

题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

        这个题目比较常见,有用栈的,有用递归的,对递归还不太熟悉应该用递归多写几次掌握一下。正如书上所说,这道题如果用递归,是要考虑栈溢出问题的。