剑指Offer
codeDonald
这个作者很懒,什么都没留下…
展开
-
【剑指offer】4.二维数组中的查找
java中:获取二维数组的行数:array.length获取二维数组的列数:array[0].length是.length String是.length()C++中:获取数组的长度为.size()从左上开始寻找target,大则–列,小则++行java实现:public class Solution { public boolean Find(int target, int...原创 2019-04-25 18:58:13 · 79 阅读 · 0 评论 -
【剑指offer❤️】18.删除链表节点
题目一:在O(1)时间删除链表结点给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。假设链表一定存在,并且该节点一定不是尾节点。JAVA/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNo...原创 2019-04-27 17:25:05 · 161 阅读 · 0 评论 -
【剑指offer❤️】16.数值的整数次方
java:public class Solution { public double Power(double base, int exponent) { double result =1; for(int i=1;i<=Math.abs(exponent);i++) result*=base; return...原创 2019-04-27 13:46:27 · 104 阅读 · 0 评论 -
【剑指offer❤️】15.二进制中1个个数
输入一个整数,判断二进制中1的个数java中 :byte[] cannot be converted to booleanint cannot be converted to booleanC++:class Solution {public: int NumberOf1(int n) { int count=0;; unsigned int f...原创 2019-04-27 12:46:23 · 184 阅读 · 0 评论 -
【剑指offer❤️】14.剪绳子
给你一根长度为 n 绳子,请把绳子剪成 m 段(m、n 都是整数,2≤n≤58 并且 m≥2)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]k[1] … k[m] 可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。一 用动态规划通常是用来求最优解(最大值,最小值)从上到下分析, 从下到上实现什么时候可以用动...原创 2019-04-27 12:07:44 · 135 阅读 · 0 评论 -
【剑指offer】11.旋转数组的最小数字
中点mid属于左半区间,则左半区间是[l, mid],右半区间是[mid+1, r],更新方式是r = mid;或者 l = mid + 1;,此时用第一个模板:版本1当我们将区间[l, r]划分成[l, mid]和[mid + 1, r]时,其更新操作是r = mid或者l = mid + 1;,计算mid时不需要加1。int bsearch_1(int l, int r){ w...原创 2019-04-26 14:07:34 · 84 阅读 · 0 评论 -
【剑指offer❤️】10.4矩形覆盖
还是先找关系N方法11223345关系式 N = N-1 + N-2JAVA:❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️public class Solution { public int RectCover(int target) { int[] sa...原创 2019-04-26 11:19:32 · 91 阅读 · 0 评论 -
【剑指offer】10.3 变态跳台阶 不用麻烦了,青蛙很忙的,青蛙不会飞,从零开始跳
还是先找出关系式 不用麻烦了,青蛙很忙的,青蛙不会飞,从零开始跳台阶跳法11(1)22(1 1, 2)34(1 1 1,1 2,2 1,3)48 (1 1 1 1,1 1 2,1 2 1,1 3,2 1 1,2 2,3 1,4)可以看出来 关系式是 N = N-1 +2*(N-2)JAVA:public class Soluti...原创 2019-04-26 11:03:55 · 150 阅读 · 0 评论 -
【剑指offer】10.2 青蛙跳台阶 可平地而起,无阁楼空中
这种题 需要先写出来一个 关系式,找出来跳法 和 台阶 的关系台阶跳法11(1)22(1 1,2)33(1 1 1,1 2, 2 1)45(1111,11 2,1 2 1,2 11,2 2)现在看出来了吗?n台阶的跳法 = (n-1) + (n-2) 回到了斐波那契数列java:public class Solution { ...原创 2019-04-26 10:49:59 · 108 阅读 · 0 评论 -
【剑指offer】10.斐波那契数列 递归还是迭代!=重复多 ?递归 :动态规划
如果使用递归 会造成大量的数据重复计算递归是从上到下,一层层计算。那么反过来 根据 下面的值 计算上面 依赖于他们的值,就是动态规划了。JAVApublic class Solution { public int Fibonacci(int n) { int[] save = {0,1}; if(n<2) retur...原创 2019-04-26 10:31:34 · 210 阅读 · 0 评论 -
【剑指offer】5.替换空格
JAVAjava 获取 i 字符位置的值 str.charAt(i)设置 i位置的值:str.setCharAt(i,’ ');public class Solution { public String replaceSpace(StringBuffer str) { int count=0; for(int i=0;i<str.length();i+...原创 2019-04-26 10:16:01 · 98 阅读 · 0 评论 -
【剑指offer】8.二叉树的下一节点
1。如果一个树有右子树,那么他右子树的最左节点就是它的下一个节点。2。如果节点没有右子树,并且它是它父节点的左子树,那么它的下一个节点就是父子树。3。如果一个树没有左,右子树,那么它的父节点上第一个是父节点左子树的树就是它的下一个节点,如果直到根节点前都没有左子树,那么就没有下一个节点。JAVA:/*public class TreeLinkNode { int val; ...原创 2019-04-25 22:57:07 · 76 阅读 · 0 评论 -
【剑指offer】7.重建二叉树
* * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */...原创 2019-04-25 21:29:04 · 82 阅读 · 0 评论 -
【剑指offer】6.从尾到头打印链表
书上是输出就行,牛客网上是返回一个数组,这是放在数组返回的,输出就直接输出了。利用栈利用栈就是遍历链表的同时,压入栈,注意是while只要头节点不为空就压入,然后再只要不为空就弹出到arraylistjava 中栈的用法:(1)stack.push(i) 压栈(2)stack.pop()弹出栈并且删除(3)stack.peek()查看栈顶 syso(stack)就可查看全部(4)s...原创 2019-04-25 20:36:45 · 78 阅读 · 0 评论 -
【剑指offer】22.链表的倒数第K个节点
java:遍历的时候就在记录次数。/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindKthToTa...原创 2019-04-27 21:17:21 · 107 阅读 · 0 评论