剑指offer Java版
A.l.N.Y.�
这个作者很懒,什么都没留下…
展开
-
二维数组中的查找
二维数组中的查找题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。例如二维数组: 1 2 8 9 2 4 9 ...原创 2019-03-31 21:20:13 · 78 阅读 · 0 评论 -
替换空格
替换空格请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 public String replaceSpace(StringBuffer str) { if(str==null){ return null; } ...原创 2019-03-31 21:38:53 · 77 阅读 · 0 评论 -
斐波那契数列(跳台阶)
斐波那契数列题目1:斐波那契数列大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39斐波那契数列定义:1、1、2、3、5、8、13、21、34、……我们最容易想到的是递归的方式,代码如下: public int Fibonacci(int n) { if(n<=0){ ...原创 2019-04-10 17:38:31 · 280 阅读 · 0 评论 -
删除链表中重复的节点
删除链表中重复的节点题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5思路:1.添加一个头节点,防止遇到第1,2个就相同的情况。2.设置pre cur指针,pre指向当前确定不重复的节点,cur为工作指针,一直向...原创 2019-04-08 14:54:13 · 76 阅读 · 0 评论 -
旋转数组的最小数字
旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路直观解法:遍历数组没有利用旋转数组特性,达不到面试官的要求。旋转后的数组可...原创 2019-04-09 13:00:07 · 79 阅读 · 0 评论 -
二进制中1的个数
二进制中1的个数**题目描述**输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。考察二进制和位运算解法一:可能陷入死循环的解法:从左向右移,从n的2进制形式的最右边开始判断是不是1。public static int NumberOf(int n) { int count = 0; while (n != 0) { if ((n & 1)...原创 2019-04-13 17:21:04 · 78 阅读 · 0 评论 -
从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。借助栈的“后进先出”实现/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* ...原创 2019-04-27 15:11:18 · 63 阅读 · 0 评论 -
丑数
题目描述:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解法1:逐个判断每个数是不是丑数,解法直观,但不高效。如果一个数能被2整除,就连续除2,能被3整除,就连续除3,能被5整除,就连续除5,如果最后得到的是1,那么这个数就是丑数。//判断这个数是不是...原创 2019-04-29 10:08:23 · 82 阅读 · 0 评论