算法基础
文章平均质量分 62
登徒先生
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二维数组的查找
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。最简单就是从头到尾遍历一遍,假设数组长度为x*y,从头遍历复杂度为O(x*y)。但是该数组每行从左到右递增,每列从上到下递增,这样左上角的数最小,右下角的数最大,从这两个点开始遍历,路径都不确定。还有两个原创 2018-01-23 01:04:32 · 128 阅读 · 0 评论 -
求链表公共结点
题目描述输入两个链表,找出它们的第一个公共结点。思路:公共结点前两链表的结点数不一定相等,公共结点后两链表结点数一样。先把长度差补上,然后开始同时遍历。代码实现:public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}...原创 2018-02-25 22:28:51 · 534 阅读 · 0 评论 -
旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。方法1直接遍历,时间复杂度O(n):public class Solution { public int ...原创 2018-03-01 23:31:36 · 180 阅读 · 0 评论 -
链表中倒数第k个结点
题目描述输入一个链表,输出该链表中倒数第k个结点。利用快慢指针的思想,先让快指针移动k次,然后快指针和慢指针同时往后移动,当快指针遍历完链表,此时慢指针正好处于倒数第k个结点。代码实现:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val...原创 2018-02-12 20:56:41 · 261 阅读 · 0 评论 -
二叉树的层序遍历
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。根据题目描述,其实就是求二叉树的层序遍历结果。思路:遍历当前节点,使用队列来储存子节点,然后从队列取下一个要遍历的节点,将该节点的子节点放入队列...递归下去,最终得到遍历结果。实现代码:import java.util.ArrayList;/**public class TreeNode { int val = 0; ...原创 2018-01-29 00:08:44 · 147 阅读 · 0 评论 -
魔法币
小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需原创 2018-01-20 01:53:41 · 227 阅读 · 0 评论 -
变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。转换一下题目的意思,如图。1.共有n级的台阶,每一个格子代表一个台阶,把每次跳完一步的落脚点记为"1",没停留的台阶记为"0";2.因为最后肯定会跳在最后一格上,所以第n个格子必定为"1"。根据条件1和条件2,其实就是原创 2018-02-02 01:22:28 · 153 阅读 · 0 评论 -
从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。分两次遍历,第一次遍历计算链表长度确定输出数组的长度,第二次遍历把节点值从数组末尾往前放入。代码实现:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int v原创 2018-01-25 04:30:46 · 136 阅读 · 0 评论 -
斐波那契数列
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。列一下前几级台阶跳法:数学归纳法,第n级台阶的跳法共有(n-2)+(n-1),典型的斐波那契数列。实现代码:public class Solution { public int JumpFloor(int target) { int f1 =原创 2018-01-31 00:29:02 · 173 阅读 · 0 评论 -
二叉树的后序遍历
节点和树类:public class TreeNode { Integer value; TreeNode left = null; TreeNode right = null; public TreeNode() { } public TreeNode(Integer val) { this.value = val;...原创 2018-03-13 23:00:10 · 373 阅读 · 0 评论
分享