LCR 056.两数之和 IV

2023-10-04 22:36
文章标签 两数 lcr 056 iv

本文主要是介绍LCR 056.两数之和 IV,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​​题目来源:

        leetcode题目,网址:LCR 056. 两数之和 IV - 输入二叉搜索树 - 力扣(LeetCode)

解题思路:

       广度优先遍历二叉树的同时将已遍历过的节点值加入哈希表,若目标值与当前节点值之差存在哈希表中,返回 true;否则返回false。

解题代码:

/*** 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, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean findTarget(TreeNode root, int k) {HashSet<Integer> set=new HashSet<>();Queue<TreeNode> queue=new LinkedList<>();queue.offer(root);while(!queue.isEmpty()){int size=queue.size();for(int i=0;i<size;i++){TreeNode temp=queue.poll();if(set.contains(k-temp.val)){return true;}else{set.add(temp.val);if(temp.left!=null){queue.offer(temp.left);}if(temp.right!=null){queue.offer(temp.right);}}}}return false;}}
 

总结:

        官方题解给出了四种解法。第一种是深度优先+哈希表。第二种是广度优先+哈希表。第三种是先中序遍历得到升序数组,再在数组中寻找。第四种直接在树上用双指针进行查找。


这篇关于LCR 056.两数之和 IV的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/2863

相关文章

两数之和--力扣1

两数之和 题目思路C++代码 题目 思路 根据题目要求,元素不能重复且不需要排序,我们这里使用哈希表unordered_map。注意题目说了只对应一种答案。 所以我们在循环中,使用目标值减去当前循环的nums[i],得到差值,如果我们在map中能够找到这个差值,就说明存在两个整数的和为目标值。 如果没有找到,就将当前循环的nums[i]以及下标i放入map中,以便后续查

Leetcode面试经典150题-2.两数相加

解法都在代码里,不懂就留言或者私信 理论上提交这个就是最优解 字节考过不下20次,这个高居字节面试榜第9名 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) {

【LeetCode】01.两数之和

题目要求 做题链接:1.两数之和 解题思路 我们这道题是在nums数组中找到两个两个数使得他们的和为target,最简单的方法就是暴力枚举一遍即可,时间复杂度为O(N),空间复杂度为O(1)。 代码实现 class Solution {public:vector<int> twoSum(vector<int>& nums, int target) {//暴力枚举int n=nums

力扣第一题:两数之和

文章目录 需求分析代码结尾 需求 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[

【python因果推断库7】使用 pymc 模型的工具变量建模 (IV)2

目录 与普通最小二乘法 (OLS) 的比较 应用理论:政治制度与GDP 拟合模型:贝叶斯方法  多变量结果和相关性度量 结论 与普通最小二乘法 (OLS) 的比较 simple_ols_reg = sk_lin_reg().fit(X.reshape(-1, 1), y)print("Intercept:", simple_ols_reg.intercept_, "Bet

LCR 018

题目:LCR 018 解法:双指针 左指针指向第一个元素,右指针指向最后一个元素。两指针向中间收缩,当遇到不合法字符时跳过直到下一个合法字符 public boolean isPalindrome(String s) {int left = 0, right = s.length() - 1;while (left < right) {while (left < right &&

【Hot100算法刷题集】哈希-01-两数之和(暴力枚举再优化,也不是哈希表的对手)

🏠关于专栏:专栏用于记录LeetCode中Hot100专题的所有题目 🎯每日努力一点点,技术变化看得见 题目转载 题目描述 🔒link->题目跳转链接 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那 两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任

【python因果推断库6】使用 pymc 模型的工具变量建模 (IV)1

目录 使用 pymc 模型的工具变量建模 (IV) 使用 pymc 模型的工具变量建模 (IV) 这份笔记展示了一个使用工具变量模型(Instrumental Variable, IV)的例子。我们将会遵循 Acemoglu, Johnson 和 Robinson (2001) 的一个案例研究,该研究尝试解开强大的政治机构对于以国内生产总值(GDP)衡量的经济生产力的影响。本示例借鉴

欧几里德算法(求两数最大公因数)

两个整数的最大公因数(gcd)是同时整除两个大最大整数。即gcd(50,15)=5.      算法连续计算余数直到除数为0,最后的非0余数就是最大公因数。因此若M=1989,N=1590,则余数是399,393,6,3,0,从而gcd(1989,1590)=3,这是一个快速算法。 public static long gcd(long m,long n){ while(n !

LeetCode题集-1- 两数之和

这个题目是什么意思呢?简单来说就是在一个数组中找出两个元素,使其和为我们设定的值,并且每个元素只能用一次。 如下图具体示例: 到这里不知道你是否已经有解题思路了呢? 解法一:双层循环 我第一反应就是双层循环,直接暴力破解。因为题目要求每个元素只能使用一次,并且已经计算过的也没必要再次计算,因此内层循环索引起始可以以外层索引+1作为起始点,具体代码如下: public stati