数据结构,编码,经典算法
菜菜君
这个作者很懒,什么都没留下…
展开
-
剑指题库8——跳台阶
public class Solution { public int JumpFloor(int target) { if(target<=0) return -1; if(target==1) return 1; if(target==2) return 2; ...原创 2018-08-27 15:45:10 · 98 阅读 · 0 评论 -
图的广度优先搜索和深度优先搜索
背景 树的先序、中序、后序 1 深度优先搜索 和树的先序遍历比较类似 思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。 1.1 无向图的...转载 2018-11-15 15:55:46 · 156 阅读 · 0 评论 -
剑指题库24——二叉搜索树的后序遍历序列
Java版本 1.递归方法 为了解题方便,重新构造新的函数包含参数start,end,表示每次检查是否是二叉搜索树的起止位置。 思路见代码注释 public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { int len = sequence.length; ...原创 2018-11-16 10:22:17 · 111 阅读 · 0 评论 -
剑指题库17——树的子结构
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val...原创 2018-09-07 09:47:27 · 88 阅读 · 0 评论 -
剑指题库15——合并两个排序的链表
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ //递归版本——20ms public...原创 2018-09-06 21:02:14 · 92 阅读 · 0 评论 -
剑指题库18——顺时针打印矩阵
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下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. import java.util.ArrayList; public class Solution { ...原创 2018-09-07 19:56:46 · 124 阅读 · 0 评论 -
剑指题库14——链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点 思想:首先定义两个指向链表头的指针p ,q;先令一个指针指向第k节点,然后两个指针同时向后移动,最后p指向的即为倒数第k个节点。当k为零或节点为空返回。 public class ListNode { int val; ListNode next = null; ListNode(int val) { ...原创 2018-09-04 15:49:28 · 88 阅读 · 0 评论 -
剑指题库3——从尾到头打印链表
作者:grass_stars的思考 递归的点在printListFromTailToHaed(listNode.next)这个节点,那么在最后一次递归方法返回以后,每一层的递归方法都会做一个arrayList.add(lizxstNode.val)这个操作,从最后一次到第一次,逆向的调用了后面的方法。因为之前的递归点已经返回了。这个你用栈的模型考虑下 /** * public class...原创 2018-08-23 16:23:34 · 114 阅读 · 0 评论 -
剑指题库1——二维数组中的查找
题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 Java实现 自己的思路:简单遍历(一开始题没看清,没注意到数字有大小排序) public class Solution { public boolean Find(int targ...原创 2018-08-23 15:13:43 · 131 阅读 · 0 评论 -
剑指题库29——数组中出现次数超过一半的数字
题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 用Python真的好简单哦╮( ̄▽ ̄)╭(貌似复杂度上O(n^2)) class Solution: def MoreThanHalfNum_Solution(s...原创 2019-03-16 13:05:03 · 106 阅读 · 0 评论