上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 19 下一页

2019年12月29日

正则表达式匹配(剑指offer_19)

摘要: 题目描述 请实现一个函数用来匹配包括 '.' 和 '*' 的正则表达式。模式中的字符'.'表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符中的所有字符匹配整个模式。例如,字符串 “aaa” 与模式 “a.a” 和 “ab*ac*a” 匹配,但是与“a 阅读全文

posted @ 2019-12-29 14:29 Hebye 阅读(468) 评论(0) 推荐(0) 编辑

删除链表中重复的结点

摘要: 题目描述 解题描述 public ListNode deleteDuplication(ListNode pHead) { if(pHead == null || pHead.next == null) { return pHead; } ListNode next = pHead.next; if 阅读全文

posted @ 2019-12-29 13:38 Hebye 阅读(105) 评论(0) 推荐(0) 编辑

在O(1)时间内删除链表节点(剑指offer_18.1)

摘要: 解题思路 如果该节点不是尾结点,那么可以直接将下一个节点的值赋给该节点,然后该节点指向下下个节点,再删除下一个节点,时间复杂度为O(1)。 否则,就需要先遍历链表,找到节点的前一个节点,然后让前一个节点指向null,时间复杂度为O(N)。综上,如果进行N次操作,那么大约需要操作节点的次数为N-1+N 阅读全文

posted @ 2019-12-29 13:12 Hebye 阅读(269) 评论(0) 推荐(0) 编辑

2019年12月28日

打印从1到最大的n位数(剑指offer_17_多看)

摘要: 题目描述 输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1/2/3一直到最大的3位数即999。 解题思路 由于n可能非常大,因此不能直接用int来表示数字,而是用char数组进行存储。 使用回溯法得到所有的数。 用字符串表示数字的时候,最直观的方法就是字符串里每个字符都是 ' 阅读全文

posted @ 2019-12-28 16:42 Hebye 阅读(291) 评论(0) 推荐(0) 编辑

数值的整数次方(剑指offer_16)

摘要: 题目描述 给定一个double类型的浮点数base和int类型的整数exponent, 求base 的 exponent次方。 解题思路 下面的讨论x代表base,n代表exponent。 因为 (x*x)n/2 可以通过递归求解,并且每次递归n都减小一半,因此整个算法的时间复杂度为 O(logN) 阅读全文

posted @ 2019-12-28 15:00 Hebye 阅读(148) 评论(0) 推荐(0) 编辑

二进制中1的个数(剑指offer_15)

摘要: 题目描述 输入一个整数,输出该数二进制表示中1的个数。 n&(n-1) 该位运算去除n的位级表示中最低的那一位。 n : 10110100 n-1 : 10110011 n&(n-1) : 10110000 一个结论 结论:一个数与该数减一的结果进行与运算n&(n-1),会把该数右边(低位)第一个1 阅读全文

posted @ 2019-12-28 14:36 Hebye 阅读(193) 评论(0) 推荐(0) 编辑

2019年12月27日

剪绳子(剑指offer_14)

摘要: 题目描述 把一根绳子剪成多段,并且使得每段的长度乘积最大。 n = 2 return 1 (2 = 1 + 1) n = 10 return 36 (10 = 3 + 3 + 4) 贪心尽可能多剪长度为3的绳子,并且不允许有长度为1的绳子出现。如果出现了,就从已经切好长度为3的绳子中拿出一段与长度为 阅读全文

posted @ 2019-12-27 15:05 Hebye 阅读(162) 评论(0) 推荐(0) 编辑

机器人的运动范围(剑指offer_13)

摘要: 题目描述 地上有一个m行和n列的方格。一个机器人从坐标(0,0)的格子开始移动,每一次只能向上下左右四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7=18。但是,他不能进入方格(35,38),因为3+5+3 阅读全文

posted @ 2019-12-27 13:08 Hebye 阅读(153) 评论(0) 推荐(0) 编辑

2019年12月26日

矩阵中的路径(剑指offer_12)

摘要: 题目描述 判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中上下左右移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不在进入这个格子。 例如下面的矩阵包含了一条bfce路径。 解题思路 使用回溯法(backtracking)进行 阅读全文

posted @ 2019-12-26 13:46 Hebye 阅读(216) 评论(0) 推荐(0) 编辑

旋转数组中的最小数字(剑指offer_11)

摘要: 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 解题思路 将旋转数组对半分可以得到一个包含最小元素的新旋转数组,以及一个非递减排序的数组。新的旋转数组的数组元素是原数组的一半,从而将问题规模减少了一半,这种折半 阅读全文

posted @ 2019-12-26 13:14 Hebye 阅读(129) 评论(0) 推荐(0) 编辑

上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 19 下一页

导航