之和

【算法】【线性表】三数之和

1 题目 给出一个有 n 个整数的数组 S,在 S 中找到三个整数 a, b, c,找到所有使得 a + b + c = 0 的三元组。 在三元组 (a, b, c),要求 a≤b≤c。结果不能包含重复的三元组。数组可能包含重复元素,但同一个索引下标的元素不可重复使用 样例 1: 输入: numbe ......
之和 线性 算法

【算法】【线性表】两数之和

1 题目 趁着 RocketMQ在打包,做道算法题。 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。 样例 1: 输入: numbers = [2,7, ......
之和 线性 算法

18_左叶子之和

左叶子之和 给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root = [3,9,20,null,null,15,7] 输出: 24 解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 示例 2: 输入: root = [1] 输出: 0 【思路】 ......
之和 叶子 18

代码随想录算法训练营第六天| 454.四数相加 15.三数之和 18.四数之和

LeetCode 454.四数相加 题目链接: LeetCode454 思路: 将两个数组中的数存放到一个map中,用另外两个数组的值在map中去减 class Solution { public: int fourSumCount(vector<int>& A, vector<int>& B, v ......
之和 随想录 训练营 随想 算法

代码随想录算法训练营第五天| 242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

LeetCode 242.有效的字母异位词 题目链接: LeetCode242 思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) class Solution { public: bool isAnagram(string s, string t) { if(s.length() ! ......
随想录 之和 训练营 数组 交集

[LeetCode Hot 100] LeetCode1. 两数之和

题目描述 思路: 如果哈希表存在target-nums[i],则返回索引下标i和对应的key值(可以按任意顺序返回答案) 如果哈希表中不存在target-nums[i],则存入nums[i]和对应的索引值 方法一:哈希表 class Solution { public int[] twoSum(in ......
LeetCode 之和 LeetCode1 Hot 100

[LeetCode Hot 100] LeetCode15. 三数之和

题目描述 思路 特判:对于数组长度为n,如果数组为null或者数组长度小于3,返回[]。 对数组进行排序。 遍历排序后的数组: 若 nums[i]>0nums[i]>0nums[i]>0:因为已经排序好,所以后面不可能有三个数加和等于 000,直接返回结果。 对于重复元素:跳过,避免出现重复解。 令 ......
LeetCode 之和 Hot 100 15

求单位圆的任意内接三角形的三条中线之和的最大值.

求单位圆的任意内接三角形的三条中线之和的最大值. 分析与解:如下图所示,三角形 ABC 的外接圆为单位圆. AD、BE、CF 是该三角形的三条中线. 记 BC = a,AC = b,AB = c. 由中线定理可知:4AD2 = 2b2 + 2c2 - a2, 4BE2 = 2a2 + 2c2 - b ......
最大值 之和 中线 三角形 单位

算法刷题记录-数组之和

算法刷题记录-数组之和 四数相加Ⅱ 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j, k, l < n nums1[i] + nums2[j] + nums3[k] + nums ......
之和 数组 算法

力扣907. 子数组的最小值之和(单调栈)

给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大,因此 返回答案模 10^9 + 7 。 示例 1: 输入:arr = [3,1,2,4] 输出:17 解释: 子数组为 [3],[1],[2],[4],[3,1],[1,2], ......
之和 数组 907

907. 子数组的最小值之和(贡献法,单调栈,前后缀分解)

题目不难,但是涉及到的知识点很丰富。 class Solution: def sumSubarrayMins(self, arr: List[int]) -> int: MOD = 10 ** 9 + 7 n = len(arr) pre = [-1] * n suf = [n] * n stk = ......
之和 数组 后缀 贡献 907

两数之和

这个是leecode第一题大家应该很熟悉吧,一般第一思路就是暴力求解 今天讲一个其他思路用HashMap class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new Ha ......
之和

两数之和

梦开始的地方,两数之和 巧妙之处在于value做key,idx做val 可能会问:如果value冲突的?即两个一样的值 首先这是两数和问题: 如果这两个重复的数正好被选上,那么一个记录在map中,一个未记录,没问题 如果只是一个数倍选上,那么map中的记录会被后续出现的重复数更新,但并不影响(题设有 ......
之和

18. 四数之和

2023-11-22 18. 四数之和 - 力扣(LeetCode) 思路: 和之前的一篇博客的思路相同的,都是排序+双指针 只不过多加了一层循环,总时间复杂度为o(n3) 15. 三数之和 - 追梦•少年 - 博客园 (cnblogs.com) 双指针: class Solution { publ ......
之和 18

15. 三数之和

2023-11-22 15. 三数之和 - 力扣(LeetCode) 思路: 三者都不相同,和为0,可以作为i》j》k 不影响的,可能有多个 一开始想的是:暴力法 3层循环,有点bt 借用哈希表,变为2层循环 后来发现会有去重问题,很麻烦 可以进一步思考-》nums[i]<=nums[j]<=num ......
之和 15

[1] 两数之和

1 /** 2 * @param {number[]} nums 3 * @param {number} target 4 * @return {number[]} 5 */ 6 var twoSum = function (nums, target) { 7 const ll = nums.len ......
之和

代码随想录算法训练营第七天 | ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和

今日学习的文章链接和视频链接 https://programmercarl.com/链表理论基础.html ● 454.四数相加II var fourSumCount = function(nums1, nums2, nums3, nums4) { let count = 0 let map = n ......
之和 随想录 训练营 随想 算法

代码随想录算法训练营第六天 |● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数 ● 1. 两数之和

今日学习的文章链接和视频链接 https://programmercarl.com/哈希表理论基础.html 242.有效的字母异位词 var isAnagram = function(s, t) { if(s.length !== t.length) return false let map = ......
随想录 之和 训练营 数组 交集

leetcode hot 100-01 两数之和

题目:两数之和 难度:简单 题目地址:https://leetcode.cn/classic/problems/two-sum/description/ 过程一,因为难度是简单,就没有仔细审题,以为返回两个数就好,使用双指针,逻辑如下: 对数组排序 双指针分别指向头和尾 两数之和大于target,尾 ......
之和 leetcode hot 100

18. 四数之和

2023-11-09 18. 四数之和 - 力扣(LeetCode) 思路:类似 15.3数之和 都是双指针的解法 时间复杂度为o(n3) class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { // ......
之和 18

15. 三数之和 2

2023-11-09 15. 三数之和 - 力扣(LeetCode) 思路: 此题并不适合哈希表法,去重问题很麻烦 用双指针法,但是注意:双指针法如果不优化(也就是3层暴力)是超时的 class Solution { public List<List<Integer>> threeSum(int[] ......
之和 15

三数之和(双指针法)

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元 ......
针法 之和

15. 三数之和 1

2023-11-08 ​​​​​​15. 三数之和 - 力扣(LeetCode) 此篇文章是刚开始做这道题时的错误想法,正确想法请看2,这是1. 思路: 1 暴力法 2 利用哈希表将3层循环转为2层 上面的方法会有去重问题: class Solution { public List<List<Int ......
之和 15

1. 两数之和

2023-11-07 1. 两数之和 - 力扣(LeetCode) 思路: 1暴力法:o(n2)还行 2 哈希表法 最简单的哈希表算法 class Solution { public int[] twoSum(int[] nums, int target) { //暴力法 //哈希表 if(nums ......
之和

leetcode 第一题 两数之和

题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 初级阶段 Java 主要在于 数组定 ......
之和 leetcode

L1-两数之和

题目描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 示例: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] ......
之和 L1

167. 两数之和 II - 输入有序数组

给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] ,则 1 <= index1 < index2 <= numb ......
之和 数组 167 II

6.三数之和

题目概述:给定一数组nums,以及三元组的定义:i!=j,j!=k,k!=i,并且nums[i] + nums[j] + nums[k] = 0。返回该数组中所有的三元组,{1,0,-1},{-1,0,1}视为同一个三元组 解题思路:由于数据范围比较小,直接采用二重循环加二分的思路,找到符合的三元组 ......
之和

(C语言)1到50的阶乘之和列表,参考用,洛谷:P1009 [NOIP1998 普及组] 阶乘之和

1到50列表,阶乘之和 S=1!+2!+3!+⋯+n!(n≤50) 1::1 2::3 3::9 4::33 5::153 6::873 7::5913 8::46233 9::409113 10::4037913 11::43954713 12::522956313 13::6749977113 ......
阶乘 之和 语言 P1009 1009

代码随想录第七天 | 454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和

07:04:26 第一题:https://leetcode.cn/problems/4sum-ii/ 早上起来人不清醒,模模糊糊过掉了,晚上再重新复习一下 关键是这串 for a in nums3: for b in nums4: wow_sum = -(a + b) if wow_sum in h ......
之和 随想录 随想 代码 454