【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】Day 11 专题三:二分查找模板:1. 朴素二分模板:2. 区间左值模板:3. 区间右值模板: 题目1:704. 二分查找思路分析:思路1:朴素二分查找O(logN) 题目2:34. 在排序数组中查找元素的第一个和最后一个位置思路分析:思路1:区间左右值二分查找 O(logN) 专题三:二分查找模板: 根据题干分析,根据二分性,划分区间,得出二分最重要的几个要点: 判断条件:while(....
【LeetCode刷题】前缀和解决问题:742.寻找数组的中心下标、238.除自身以外数组的乘积
【LeetCode刷题】Day 15 题目1:742.寻找数组的中心下标思路分析:思路1:前缀和思想 题目2:238.除自身以外数组的乘积思路分析思路1:前缀和思想 题目1:742.寻找数组的中心下标 思路分析: 其实题干说的很明白了,就是在表述,某个位置的前半部分数组和与后半部分数组和的结果相同,就是中心下标。 这里明显就是前缀和来求解。 思路1:前缀和思想 前半部分的和与后半部分的和分别用:前缀和f数组,后缀和...
【LeetCode刷题】-- 161.相隔为1的编辑距离
161.相隔为1的编辑距离 方法:一次遍历 首先,我们要确认字符串的长度不会相差太远。如果长度差了2个或更多字符,那么 s 和 t 就不可能是一次编辑之差的字符串。 接下来,我们假设 s 的长度总是短于或等于 t 的长度。如果不是这样,人们总是可以调用 isOneEditDistance(t, s) 来逆转字符串的顺序。 现在是时候沿着字符串前进,寻找第一个不同的字符了。 如果前 len(s) 字符没有差异,只有两...
【LeetCode刷题-排序】--179.最大数
179.最大数 思路: 方法:自定义排序 class Solution { public String largestNumber(int[] nums) { if(nums == null || nums.length == 0){ return ""; } //将每个数字转换成字符串 String[] strs = new String[nums.length]; for(int i = 0;i < nums....
【LeetCode刷题笔记(6-2)】【Python】【三数之和】【双指针】【中等】
0,0,0]输出:[[0,0,0]]解释:唯一可能的三元组和为 0 。 提示 3 <= nums.length <= 3000-10 <= nums[i] <= 10 解决方案3:【双指针】 在博客【LeetCode刷题笔记(6-1)】【Python】【三数之和】【哈希表】【中等】中,我们详尽地探讨了如何利用【哈希表】精妙设计算法,从而顺利通关【三数之和】这一挑战。 在此过程中,我们深度挖掘了问题细节,确保算法能够通...
【LeetCode刷题-树】-- 107.二叉树的层序遍历II
107.二叉树的层序遍历II /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeN...
【LeetCode刷题-树】--144.二叉树的前序遍历
144.二叉树的前序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNod...
【LeetCode刷题】--245.最短单词距离III
245.最短单词距离III class Solution { public int shortestWordDistance(String[] wordsDict, String word1, String word2) { int len = wordsDict.length; int ans = len; if(word1.equals(word2)){ int prev = -1; for(int i = 0...
【LeetCode刷题笔记(11-1)】【Python】【和为 K 的子数组】【前缀和】【中等】
文章目录 引言和为 K 的子数组题目描述提示 解决方案1:【暴力枚举】解决方案2:【前缀和】结束语 和为 K 的子数组 引言 编写通过所有测试案例的代码并不简单,通常需要深思熟虑和理性分析。虽然这些代码能够通过所有的测试案例,但如果不了解代码背后的思考过程,那么这些代码可能并不容易被理解和接受。我编写刷题笔记的初衷,是希望能够与读者们分享一个完整的代码是如何在逐步的理性思考下形成的。我非常欢迎读者的批评和指正,因为...
【LeetCode刷题】--39.组合总和
39.组合总和 本题详解:回溯算法+剪枝 class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { int len = candidates.length; List<List<Integer>> res = new ArrayList<>(); if (len == 0) { return ...