java编程总结题
lcr_happy
调试的错误就是编程给你最好的东西,因为在每个错误上面都标志着前进的一步。
展开
-
java-实现单链表的增删操作
在数据结构中,除了数组,链表是我们最常见的数据结构,它的主要特点就是不用使用连续的内存单元,也不用一开始就预留出连续的内存单元,每次新加入元素的时候只要去找那些空余的内存单元即可。链表分为很多种,有单链表、双链表和环链表等。我们现在以单链表为例介绍:在java中,基本的链表节点定义如下:public class Node { public Node next; public...原创 2019-05-02 10:30:37 · 638 阅读 · 0 评论 -
(JAVA)剑指offer--矩阵中的路径
题目描述:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字...原创 2019-07-23 21:32:28 · 135 阅读 · 0 评论 -
(JAVA)剑指offer--旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:二分法,最小数组肯定在第一个数字大于最后一个数字的那个数组里面不要小看二分法代码:public ...原创 2019-07-23 21:20:47 · 111 阅读 · 0 评论 -
(Java)剑指Offer--变态跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:动态规划假设现在要跳到第n个台阶,那么我们可以从第1,2,3,…,n-1个台阶开始跳。所以就是在上一步的基础上继续向第n个台阶走,这样的话就是把之前到达1,2,3,…,n-1个台阶的方法加起来就是能够到达当前第n个台阶的总跳法数。上代码:public int J...原创 2019-07-23 21:07:54 · 110 阅读 · 0 评论 -
(JAVA)剑指Offer--矩形覆盖
题目描述:我们可以用 21 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 21 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法?思路:找规律题代码如下:public int RectCover(int n) { if (n <= 2) return n; int pre2 = 1, pre1 = 2; int resu...原创 2019-07-16 12:14:28 · 125 阅读 · 0 评论 -
(Java)剑指offer--斐波拉契数列
题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路:动态规划不要重复计算public int Fibonacci(int n) { if (n <= 1) return n; int[] fib = new int[n + 1]; fib[1] = 1; ...原创 2019-07-15 22:26:55 · 152 阅读 · 0 评论 -
Java)剑指offer--用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:首先必须明白栈和队列的区别。stack1只需要不断地往里push,stack2最上面的元素就是原来stack1最底下的元素。当stack2为空的时候才需要把stack1的元素压到stack1中。直接上代码:public class Solution { Stack<Integ...原创 2019-07-15 22:16:02 · 84 阅读 · 0 评论 -
(Java)剑指offer--二叉树的下一个结点
题目描述:原创 2019-07-15 21:59:30 · 140 阅读 · 0 评论 -
(Java)剑指offer--重建二叉树
参考CN-Notes:https://cyc2018.github.io/CS-Notes/#/题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:这道题主要是要理解中序遍历和前序遍历的顺序问...原创 2019-07-10 07:35:07 · 125 阅读 · 0 评论 -
(Java)剑指offer--从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思路:这道题的话可以参考递归的思想,搞一波栈也是可以的。 ArrayList res = new ArrayList(); public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { if(listNo...原创 2019-06-08 07:54:53 · 150 阅读 · 0 评论 -
(Java)剑指offer--替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:如果是我的话,我会很简单的这样写完。if(str==null||str.length()==0){ return ""; } StringBuffer newStr...原创 2019-06-08 07:32:46 · 142 阅读 · 0 评论 -
(Java)剑指offer--二维数字的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路:要找到目标的元素,我们需要不断地去缩小我们的查询范围。如果从左上角第一个元素查起的话,那么当你查找的元素比第一个元素大的话,你可以往右走也可以往下走。但是如果我们从右上角的第一个元素走...原创 2019-06-07 22:33:59 · 97 阅读 · 0 评论 -
(Java)剑指offer--数组中重复的数字
题目描述在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。思路:从头到尾依次扫描这个数组中的每个数字。当扫描到下标为i的数字时,首先比较这个数字(用m表示)是不是等于i。如果是,则接着扫描下一个数字:如果不是,则再拿它和第m个数字进行比较。如果它和第m个数字相等,就...原创 2019-06-07 22:04:40 · 642 阅读 · 6 评论 -
(Java)剑指Offer--跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路:斐波拉契直接上代码:public class Solution { public int JumpFloor(int target) { if(target<=2){ return target; ...原创 2019-07-17 09:24:38 · 94 阅读 · 0 评论