- 博客(7)
- 收藏
- 关注
原创 每天两道编程题---剑指offer(15):反转链表
题目描述:输入一个链表,反转链表后,输出链表的所有元素。解题思路:由于链表的顺序存储特性,必须遍历各结点才能完成反转。首先创建两个结点,一个指向当前结点,另一个指向下一个结点。要做的就是使下一个结点指向当前结点,然后当前结点赋值为下一个结点,下一个结点赋值为下下个结点。有点类似斐波那契数列的计算过程。附上代码:public class Solution { public ListNode R...
2018-04-19 08:49:46
137
原创 每天两道编程题---剑指offer(14):链表中倒数第k个结点
题目描述:输入一个链表,输出该链表中倒数第k个结点。解题思路:由于链表是顺序存储结构,想要访问某个结点只能从头结点依次访问。于是想到先用临时结点temp遍历一次,获取链表结点数count。则倒数第k个结点就转化为了正数第(count-k)个结点。问题就迎刃而解了。附上代码:public class Solution { public ListNode FindKthToTail(ListNo...
2018-04-19 00:06:56
127
原创 每天两道编程题---剑指offer(13):奇偶顺序重排
题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路: 刚开始思考时想着是否有简便的解决方法,无奈才疏学浅百思不得。望各位大神加以指点。 纠结了几分钟后还是决定采用扎实的方法一步一步解决。首先遍历题中的数组,统计出奇数和偶数各自的数目,然后创建两个新
2018-04-18 20:02:16
184
原创 每天两道编程题---剑指offer(11):二进制中1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路:原本想的方法是采用十进制转二进制的算术方法,对照测试用例后发现需要转换为32位二进制数。于是设立了一个测试位flag,一个计数位count,与n按位与运算,若结果不为0,则count++。每次与运算后flag左移一位,与下一位进行运算。附上代码:import java.util.*;public class Sol...
2018-04-17 20:11:43
131
原创 每天两道编程题---剑指offer(9):跳台阶问题
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:我没有找到用显式递归解决该问题的方法,只是在解题过程中用到了递归的思想。显而易见,n=1时只有一种方法。当n>=2时,可以分情况讨论青蛙跳的级数。若第一次跳1级,问题就变成了求青蛙跳n-1级有多少种方法;若第一次跳2级,问题就变成了求青蛙跳n-2级有多少种方法.....
2018-04-17 17:19:06
137
原创 每天两道编程题---剑指offer(2):替换空格
题目描述:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路:刚看到这道题时,首先想到的是String自带的replace方法,但是没有去使用,想尝试一下其他方法。首先还是要判断输入字符串是否为空,这是任何题目都要优先考虑的事情。这里我使用了StringBuilder,通过对输入字符串的...
2018-04-16 11:57:14
133
原创 每天两道编程题---剑指offer(1):二维数组中的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:由于每一行、每一列都是递增的,所以显然arr[0][0]和arr[arr.length-1][arr[0].length-1]分别是最小的和最大的数。通过target与这两个数的比较可以轻松排除一部分情况。这里需要...
2018-04-16 10:48:27
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人