摘要: 二分查找是一种高效的查找算法,一般普通的循环遍历查找需要O(n)的时间复杂度,而二分查找时间复杂度则为O(logN),因为每一次都将查找范围减半。 看看百度百科以及LeetCode官方给出的二分查找算法的解释: (百度百科) 二分查找也称折半查找(Binary Search),它是一种效率较高的查找 阅读全文
posted @ 2020-05-08 15:04 vibe 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 题目以及输入输出描述: 题目很短。意思也很容易读懂。 题目要求就是 有一只老鼠,进入了一个迷宫,迷宫地图的大小为n*n。老鼠要从(起点)(0,0)坐标位置 到达 终点 (n-1,n-1)的位置。 老鼠的行动方式只有两种 —— 向下和向前。 每一个点都会让老鼠的速度降低(减少)。求老鼠到达终点的时候最 阅读全文
posted @ 2019-10-27 21:59 vibe 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 其实所谓异位就是指包含的字母是一样的只是位置不同。所以只要把其排序,若是字母异位词应当相等。 class Solution { public List<List<String>> groupAnagrams(String[] strs) { String[] tmp = new String[str 阅读全文
posted @ 2020-02-01 15:21 vibe 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给定一个二维网络,给定任意起点与终点。每一步可以往4个方向走。要找出黄金最多的一条线路。 很明显的是要“一条路走到黑,一直下去直到某个条件停止”。 运用dfs(深度优先搜索)求解。 因为起点任意,所以从每个点开始搜,接着每个点又搜相邻点。反复如此。 递归的终止条件: 1:越界。 2:搜到 阅读全文
posted @ 2019-11-21 15:41 vibe 阅读(367) 评论(0) 推荐(0) 编辑
摘要: String类被final修饰,创建的对象为不可变对象,属于字符串常量。 而StringBuffer与StringBuilder创建的属于字符串常量。 StringBuffer的方法大多用了Synchronized关键字修饰添加了同步锁。而StringBuilder没有。 所以StringBuffe 阅读全文
posted @ 2019-10-30 19:29 vibe 阅读(271) 评论(0) 推荐(0) 编辑
摘要: ArrayList,与LinkedList都是属于实现了List接口的类。首先从名字前缀开始看 ,Array表示数组,Link表示链表。 所以ArrayList底层是基于动态数组的。而LinkedList底层是基于双向链表的。 ArrayList必须是连续内存的,而LinkedList不要求连续内存 阅读全文
posted @ 2019-10-30 19:22 vibe 阅读(3109) 评论(0) 推荐(0) 编辑
摘要: LeetCode 题号739中等难度 每日温度 题目描述: 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 阅读全文
posted @ 2019-10-27 09:04 vibe 阅读(1346) 评论(0) 推荐(0) 编辑