leetcode
刷leetcode遇到的一些奇妙的算法
z_passion_more
码不停
展开
-
每日一道leetcode - 相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 确定两个树是相同的,那么前序遍历,中序遍历和后续遍历出的结果都是一样的,所以选用以上均可判断出树是否相同。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * ...原创 2019-08-23 16:32:31 · 92 阅读 · 0 评论 -
leetcode-丑数
/** 这个三指针法是在评论区看到的 但具体不知道是何方神圣想出来的 这个方法实在是太妙了!!!!!!!! */ 三指针法 三指针每个代表2,3,5 但是三个指针指向的数,代表这个数乘以相应的235还未被录入数组中,所以指针一直停在这个数,知道被录入后,这个指针加1 初始数组num[0] = 1; index5,index2,index3均指向nums【0】 Math.min(uglynums[i...转载 2019-09-22 17:35:40 · 89 阅读 · 0 评论 -
每日一道leetcode-跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/jump-game-ii [2,3,1,1,4] 从第一个位置开始走,最多走max步,在这max布的区间(也就是例子中的 【2,3,1】...原创 2019-08-24 16:38:27 · 82 阅读 · 0 评论 -
leetcode-跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 用贪心算法,反过来比较,从最后一个位置开始,看前面有没有位置可以跳到最后一步,如果能,将当前位置最为最后一个位置,循环上述过程。 class Solution { public boolean canJump(int[] nums) { ...原创 2019-08-24 17:08:12 · 89 阅读 · 0 评论 -
leetcode-二叉树中的最大路径和
给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点 图中划红线的表示路径,此题中要寻找的路径必须是能够一笔画成的,这样才满足从树中的任意一点能到达另外一个任意一点的最大值 所以要招的最大路径就是当前节点加上左子树的最大路径(可为0)加上右子树的最大路径(可为0),这样形成了递归,每次递归返回的值为当...原创 2019-09-19 16:14:50 · 197 阅读 · 0 评论 -
leetcode-找下一个字典排序的数列
先遍历一遍数组,从后向前找,找出这个数,这个数的后一位比这个数大(找出这个数后,可以判定,这个数值后的数组是降序排列的) 将找到的这个数与比这个数大的值交换(按从后往前的顺序找第一个比这个数大的数) 交换之后,i 表示这个数的后一位,j 表示最后一个数,依次进行swap操作。 class Solution { public void nextPermutation(int[] nums)...原创 2019-09-27 21:53:13 · 162 阅读 · 0 评论