Day 07

2024-09-04 09:44
文章标签 day 07

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

454. 四数相加 II

分组+哈希

class Solution
{
public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4){int num{};unordered_map<int, int> map;for (int i = 0; i < nums1.size(); i++){for (int j = 0; j < nums2.size(); j++){if (map.count(nums1[i] + nums2[j]) == 1){map[nums1[i] + nums2[j]]++;}else{map[nums1[i] + nums2[j]] = 1;}}}for (int i = 0; i < nums3.size(); i++){for (int j = 0; j < nums4.size(); j++){if (map.count(-(nums3[i] + nums4[j])) == 1){num += map[-(nums3[i] + nums4[j])];}}}return num;}
};

383. 赎金信

哈希映射

class Solution
{
public:bool canConstruct(string ransomNote, string magazine){unordered_map<char, int> map;for (auto& ch : magazine){map[ch]++;}for (auto& ch : ransomNote){if (map.count(ch)){map[ch]--;if (map[ch] == 0){map.erase(ch);}}else{return false;}}return true;}
};

15. 三数之和 

双指针

class Solution
{
public:vector<vector<int>> threeSum(vector<int>& nums){vector<vector<int>> ans;sort(nums.begin(), nums.end());for (int i = 0; i < nums.size() && nums[i] <= 0; i++){int left = i + 1, right = nums.size() - 1, sum;if (i > 0 && nums[i] == nums[i - 1]){continue;}while (left < right){sum = nums[left] + nums[right] + nums[i];if (sum < 0){left++;while (left < right && nums[left - 1] == nums[left]){left++;}}else if (sum > 0){right--;while (left < right && nums[right + 1] == nums[right]){right--;}}else{ans.push_back({ nums[i],nums[left], nums[right] });left++;while (left < right && nums[left - 1] == nums[left]){left++;}right--;while (left < right && nums[right + 1] == nums[right]){right--;}}}}return ans;}
};

18. 四数之和 

双指针

class Solution
{
public:vector<vector<int>> fourSum(vector<int>& nums, int target){vector<vector<int>> ans;if (nums.size() < 4){return ans;}sort(nums.begin(), nums.end());for (int i = 0; i < nums.size() - 3; i++){if (i > 0 && nums[i] == nums[i - 1]){continue;}for (int j = i + 1; j < nums.size() - 2; j++){int left = j + 1, right = nums.size() - 1;long long sum;if (j > i + 1 && nums[j] == nums[j - 1]){continue;}while (left < right){sum = (long long)nums[i] + nums[j] + nums[left] + nums[right];if (sum < target){left++;while (left < right && nums[left - 1] == nums[left]){left++;}}else if (sum > target){right--;while (left < right && nums[right + 1] == nums[right]){right--;}}else{ans.push_back({ nums[i], nums[j], nums[left], nums[right] });left++;while (left < right && nums[left - 1] == nums[left]){left++;}right--;while (left < right && nums[right + 1] == nums[right]){right--;}}}}}return ans;}
};

这篇关于Day 07的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

Linux基础入门 --9 DAY

文本处理工具之神vim         vi和vim简介 一、vi编辑器 vi是Unix及类Unix系统(如Linux)下最基本的文本编辑器,全称为“visual interface”,即视觉界面。尽管其名称中包含“visual”,但vi编辑器实际上工作在字符模式下,并不提供图形界面。vi编辑器以其强大的功能和灵活性著称,是Linux系统中不可或缺的工具之一。 vi编辑器具有三种主要的工作模

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾,且有不超过 h 个下标满足条件的最长好子序列的长度(0<=h<=k),二维数组dp初始值全为1 解题过程 状态转换方程: 1.nums[i]==nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h]+1) 2.nums[i]!=nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h-1

[Day 73] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在健康管理中的應用實例 1. 引言 隨著健康管理需求的提升,人工智能(AI)在該領域的應用越來越普遍。AI可以幫助醫療機構提升效率、精準診斷疾病、個性化治療方案,以及進行健康數據分析,從而改善病患的健康狀況。這篇文章將探討AI如何應用於健康管理,並通過具體代碼示例說明其技術實現。 2. AI在健康管理中的主要應用場景 個性化健康建議:通過分析用戶的健康數據,如飲食、運動、睡眠等,AI可

Vue day-03

目录 Vue常用特性 一.响应更新 1. 1 v-for更新监测 1.2 v-for就地更新 1.3 什么是虚拟DOM 1.4 diff算法更新虚拟DOM 总结:key值的作用和注意点: 二.过滤器 2.1 vue过滤器-定义使用 2.2 vue过滤器-传参和多过滤器 三. 计算属性(computed) 3.1 计算属性-定义使用 3.2 计算属性-缓存 3.3 计算属

07 v-if和v-show使用和区别

划重点: v-ifv-show 小葱拌豆腐 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

java基础总结07-面向对象3(this关键字)

this是一个引用,它指向自身的这个对象。 看内存分析图 假设我们在堆内存new了一个对象,在这个对象里面你想象着他有一个引用this,this指向这个对象自己,所以这就是this,这个new出来的对象名字是什么,我们不知道,不知道也没关系,因为这并不影响这个对象在内存里面的存在,这个对象只要在内存中存在,他就一定有一个引用this。 看下面的例子分析: package cn.ga

【SpringMVC学习07】SpringMVC与前台的json数据交互

json数据格式在接口调用中、html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍。在springmvc中,也支持对json数据的解析和转换,这篇文章主要总结一下springmvc中如何和前台交互json数据。 1. 两种交互形式  springmvc和前台交互主要有两种形式,如下图所示: 可以看出,前台传过来的方式有两种,一种是传json格式的数据过来,另一种

周末总结(2024/09/07)

工作 人际关系核心实践: `要学会随时回应别人的善意,执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己,抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内,职场社交不要放在5min以外 职场的人际关系在面对利益冲突是直接质疑,要快准狠,不要内耗、 回复消息要控制在30mins之内,一定要及时回复`` 工作上的要点 现状(已经提了离职,last day在9月20号)