剑指offer
CSTian2019
这个作者很懒,什么都没留下…
展开
-
剑指offerJAVA版笔记(第四天、第十九题至第二十四题)
19.顺时针打印矩阵题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路:计算好层数然后左,下,右,上这样循环输出注意判断是否重复输出即可。public ...原创 2019-02-14 23:30:02 · 155 阅读 · 0 评论 -
剑指offerJAVA版笔记(第九天、第四十九题至第五十四题)
49.把字符串转换成整数题目描述:将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。输入描述:输入一个字符串,包括数字字母符号,可以为空输出描述:如果是合法的数值表达则返回该数字,否则返回0public static boo...原创 2019-02-19 17:08:40 · 133 阅读 · 0 评论 -
剑指offerJAVA版笔记(第八天、第四十三题至第四十八题)
43.左旋转字符串题目描述:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!解题思路:(个人觉得循环移位应该是允许n > str.length的...原创 2019-02-18 20:12:33 · 123 阅读 · 0 评论 -
剑指offerJAVA版笔记(第三天、第十三题至第十八题)
13.调整数组顺序使奇数位于偶数前面题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解题思路:建立两个数组分别存储奇数和偶数,分类到两个数组后在讲数组合并。public class Solution { public void reOrderArray...原创 2019-02-13 11:15:33 · 260 阅读 · 0 评论 -
剑指offerJAVA版笔记(第二天、第七题至第十二题)
package day2;/** * 大家都知道斐波那契数列,现在要求输入一个整数n, * 请你输出斐波那契数列的第n项(从0开始,第0项为0)。 * n<=39 */public class Fibonacci { public static int Fibonacci(int n) throws Exception { if(n < 0)...原创 2019-02-10 17:47:23 · 159 阅读 · 0 评论 -
剑指offerJAVA版笔记(第一天、第一题至第六题)
/*题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 */public class replaceSpace { public static String replaceSpace(StringBuffer str) { int len = str....原创 2019-02-09 14:32:03 · 225 阅读 · 0 评论 -
剑指offerJAVA版笔记(第七天、第三十七题至第四十二题)
37.数字在排序数组中出现的次数题目描述:统计一个数字在排序数组中出现的次数。解题思路:因为是有序数组故使用二分查找去做,写两个函数分别去取得第一个k和最后一个k的位置然后将两个位置相减即可得到结果。public int GetNumberOfK(int[] array, int k) { if (array == null || array.length == 0) ...原创 2019-02-17 23:08:50 · 141 阅读 · 0 评论 -
剑指offerJAVA版笔记(第六天、第三十一题至第三十六题)
31.整数中1出现的次数(从1到n整数中1出现的次数)题目描述:求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。解题思路:将所有...原创 2019-02-16 18:07:45 · 97 阅读 · 0 评论 -
剑指offerJAVA版笔记(第十一天、第六十一题至第六十六题)
61.序列化二叉树题目描述:请实现两个函数,分别用来序列化和反序列化二叉树/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; ...原创 2019-02-21 22:40:31 · 138 阅读 · 0 评论 -
剑指offerJAVA版笔记(第五天、第二十五题至第三十题)
25.复杂链表的复制题目描述:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解题思路:1.遍历链表,复制每个结点,如复制结点A得到A1,将结点A1插到结点A后面;2.重新遍历链表,复制老结点的随机指针给新结点,如A1.ra...原创 2019-02-15 16:32:37 · 257 阅读 · 0 评论 -
剑指offerJAVA版笔记(第十天、第五十五题至第六十题)
55.链表中环的入口结点题目描述:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路:使用HashMap保存遍历过的结点,当hashmap中保存了这个结点再次遍历到时,这个结点就是换的入口结点。public ListNode EntryNodeOfLoop(ListNode pHead) { HashMap<ListNode, In...原创 2019-02-20 13:35:27 · 108 阅读 · 0 评论