leedCode
monkey1008611
十四线小程序猿
展开
-
547. Friend Circles (java)
class Solution { public static void dfs(int[][] M, int[] visited, int i) { for (int j = 0; j < M.length; j++) { if (M[i][j] == 1 && visited[j] == 0) { ...原创 2019-03-18 00:08:08 · 150 阅读 · 0 评论 -
524. Longest Word in Dictionary through Deleting
最近在刷LeetCode的题解,遇到这样的题,解答很多是用递归做的,我对递归不是很熟悉,每次都会尽量避免使用递归。看到这个题解感觉还不错,就理解了一下。有一个最长字符串的初始化,遍历链表,每次都跟链表里的字符串比较,看看长度是否有效,以及字典序。 如果链表元素有成为最长字符串的可能的话,就用isValued来判断通过删除S的某些字符,能否构成该链表元素。个人觉得这个方法非常妙,适合我的...原创 2019-03-24 23:54:21 · 114 阅读 · 0 评论 -
LeetCode 双指针的应用
在看一位大佬关于LeetCode的题解时,发现他对于里面可以双指针的问题都做了总结。个人觉得双指针很简单方便,可以降低复杂度。有序数组两数之和 && 两数平方和:头尾各设置一个指针,根据结果大小来判断是哪一个指针移动。前提是有序。反转字符串中的元音音节:头尾设置指针,遇到元音音节的时候不移动,直到两个都是元音音节之后移动。回文字符串:设置头尾指针,依次对比,发现不一...原创 2019-03-25 11:46:29 · 462 阅读 · 0 评论 -
406. 根据身高重建队列
假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。思想:贪心算法。先把这些人按高-->矮排列,因为高个子在前面,矮个子插入的时候,不会对高个子产生影响。比如前面是【7,0】要插入【5,0】,把【5,0】放在最前面对【7,0】没有影响。而如果反过来【7,0】插入...原创 2019-04-11 21:13:15 · 309 阅读 · 0 评论 -
605.种花问题
这是一道easy的问题,但是我觉得需要注意的点值得关注:种花需要两个其两边都是0才能种下,但是开头和结尾有两个0(00- -00)的时候是可以种花的,有两种方法:一:在开头和结尾加上0,但是这样对空间不友好; 二:单独判断。下面的做法是不加上0,利用短路或“||”,来对开头和结尾做处理,这样的前提是要把i==0, i==len-1放在或语句的前面判断,这样后面的就会被短路,从...原创 2019-04-11 22:46:03 · 201 阅读 · 0 评论 -
347. Top K Frequent Elements
桶排序:找出出现次数大于K的数字:public static List<Integer> topKFrequent(int[] nums, int k) { List<Integer>[] bucket = new List[nums.length+1];//桶,list数组,为每个次数建一个list。一定要+1.否则当nums全为一个数时后面会越界 ...原创 2019-04-09 21:11:16 · 86 阅读 · 2 评论 -
闰年判断
可以被4整除且不能被100整除 或者 可以被400整除final static int[] days = {31,28,31,30,31,30,31,31,30,31,30,31}; public static int dayOfYear(String date) { int result = 0; int values[] = new int[3]; for(int ...原创 2019-09-03 22:48:36 · 1523 阅读 · 0 评论 -
vivo:给定一个数组,开始位置在他的第一个位置,每个位置的数字代表能做的最大距离,判断能否走到结尾,如果能,输出最小跳数
import java.io.*;/** * Welcome to vivo ! */public class jump_game_ii { public static int jump(int[] nums) { int end = 0; int steps = 0; int max = 0; for(int i...原创 2019-09-22 21:06:30 · 396 阅读 · 1 评论