每日两题 / 15. 三数之和 73. 矩阵置零(LeetCode热题100)

15. 三数之和 - 力扣(LeetCode)
image.png

先确定一个数t,对于剩下的两个数,要求两数之和为t的负数
三数之和就退化成了两数之和,两数之和可以用双指针
先排序,左右两个指针,指向的数之和大于目标值,则r–,反之l++
两数之和为目标值的组合可能不止一对,所以双指针需要走到l == r时停止
根据题目要求,确定两数之和为目标值后,两个指针都需要跳过相同的数,才能继续走
同时,每次双指针的目标值也不能相同
最后,左指针不能从数组的0下标开始,应该从t的后一位开始。这样就能保证每次枚举的三元组都是从小到大排序,不会出现重复的情况

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

73. 矩阵置零 - 力扣(LeetCode)
image.png

用两个数组维护哪些行/哪些列出现了0,如果第i行/列出现了0,将第i个元素置0
直接将原数组的第0行的第0列作为这两个数组,此时直接修改第0行/第0列的元素为0不会影响答案
问题是:需要确定第0行/第0列是否已经存在0,若存在则需要将整行/整列置0
所以需要使用bool变量先记录这两个数组是否存在0

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int row = matrix.size(), col = matrix[0].size();bool r = false, c = false;for (int i = 0; i < col; ++ i) if (!matrix[0][i])r = true;for (int i = 0; i < row; ++ i)if (!matrix[i][0])c = true;for (int i = 1; i < row; ++ i)for (int j = 1; j < col; ++ j)if (!matrix[i][j])matrix[i][0] = 0, matrix[0][j] = 0;for (int i = 1; i < row; ++ i)for (int j = 1; j < col; ++ j)if (!matrix[i][0] || !matrix[0][j])matrix[i][j] = 0;for (int i = 0; r && i < col; ++ i)matrix[0][i] = 0;for (int i = 0; c && i < row; ++ i)matrix[i][0] = 0;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/820566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI启示录:既是企业安全利器,也是内部隐藏炸弹

目录 发现潜在威胁->成为内部威胁 精准检测威胁->扰乱正常业务 深度学习->数据中毒 随着网络威胁的迅速发展&#xff0c;专家预计&#xff0c;到 2024 年网络犯罪将给美国公司带来高达 4520 亿美元的损失&#xff0c;且这一数字在未来几年还会迅速增长。除了网络安全措…

鱼哥推荐书籍第18期:《推荐系统》算法 案例与大模型

鱼哥推荐书籍第18期&#xff1a;《推荐系统》算法 案例与大模型 什么是推荐系统&#xff1f;推荐系统解决了哪些问题&#xff1f;推荐系统的应用领域常用的推荐算法&#xff1a;基于内容的推荐算法协同过滤算法&#xff1a; 如何系统学习推荐系统&#xff1a;第一部分&#xff…

IO流-IO框架

简介 java的IO流操作提供了最简单的操作&#xff0c;第三方基于日常使用习惯&#xff0c;写了很多IO框架&#xff0c;更加方便操作避免重复造轮子&#xff0c;提高开发效率 Commons-io 简介 Commons-io是apche提供的IO操作的小框架 部分常用的API 引入依赖 <dependency>…

天工杂志社《天工》杂志社2024年第5期目录

业界翘楚 巍巍者昆仑 煌煌者华夏 乔彦鹏; 6-8 工美史话 日月之光照澈幽冥——墓葬铜镜中柿蒂纹意象辨析 周昕怡;刘春芽; 9-11 西藏传统手工艺技能教育发展历程研究 吕元菊; 12-14 探索研究《天工》投稿&#xff1a;cn7kantougao163.com 传统装饰艺术设计美学的…

HashMap的扩容看这一篇足够

在Java中&#xff0c;对于HashMap这样的实现&#xff0c;put方法是用来将一个键值对插入到Map中的核心方法。以下是HashMap类中put方法的大致执行流程&#xff1a; 计算Hash值&#xff1a; 首先&#xff0c;put方法会接收一个键&#xff08;Key&#xff09;和一个值&#xff0…

局域网管理软件哪个好?局域网电脑管理系统实践案例

之前有一个公司案例&#xff0c;是这样的&#xff1a; 公司名称&#xff1a;智慧科技有限公司 背景&#xff1a; 智慧科技有限公司是一家拥有数百名员工的中型企业&#xff0c;随着业务的快速发展&#xff0c;公司面临着网络管理上的挑战。 员工在日常工作中需要频繁地访问…

探索性测试

探索性测试 探索性测试是一种动态、灵活的软件测试方法&#xff0c;与传统的计划驱动测试相对。在探索性测试中&#xff0c;测试人员不是依靠事先制定的详尽测试计划&#xff0c;而是根据其经验和直觉&#xff0c;通过探索软件应用的功能、界面、性能等方面来发现缺陷和问题。…

微信小程序使用iconfont

进入iconfont&#xff0c;添加至项目 进入项目&#xff0c;点击生成代码&#xff0c;或更新代码 点击打开样式 复制内容到小程序的style文件夹下 最后引入到app.wxss

植物中鉴定直系同源基因

直系同源基因&#xff08;Orthologous genes&#xff09;是指在不同物种中由共同祖先遗传的基因&#xff0c;它们在进化过程中保持了相似的功能和序列。鉴定植物中的直系同源基因通常涉及以下步骤&#xff1a; &#xff08;一&#xff09; 1. **序列获取**&#xff1a; 从…

用ChatGPT读了几百篇文献,我总结出了文献综述这些经验

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 近期小编会将学术论文写作每一个流程需要了解的细节与ChatGPT在这细节的背景下如何提升我们的学术论文进行分章节讨论。最终汇总成一篇长文攻略。宝子们敬请期待哦。今天我们来详细聊聊文…

22 文件系统

了解了被打开的文件&#xff0c;肯定还有没被打开的文件&#xff0c;就是磁盘上的文件。先从磁盘开始认识 磁盘 概念 内存是掉电易失存储介质&#xff0c;磁盘是永久性存储介质 磁盘的种类有SSD&#xff0c;U盘&#xff0c;flash卡&#xff0c;光盘&#xff0c;磁带。磁盘是…

防止企业数据泄密的四种有效措施

防止企业数据泄密的四种有效措施 泄密大案每天都在上演&#xff0c;受害者既有几十人的小型企业&#xff0c;也有上万人的世界500强&#xff0c;为什么这些企业都难逃数据泄露的噩梦呢&#xff1f;我们应该采取什么措施来防止信息泄密呢&#xff1f; 首先我们来看看数据泄密的…

小肥柴慢慢手写数据结构(C篇)(5-5 Huffuman编码)

小肥柴慢慢学习数据结构笔记&#xff08;C篇&#xff09;&#xff08;5-5 Huffman编码&#xff09; 目录5-16 编码案例5-17 Huffman编码原理5-18 Huffman编码/解码实现5-18-1 大致思路5-18-2 编码实现5-18-3 解码实现5-18-4 测试 5-19 实际案例总结参考文献 目录 5-16 编码案例…

✌粤嵌—2024/4/11—合并区间

代码实现&#xff1a; /*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/// 交换 void swap(i…

YOLOV5检测+追踪使用deepstream部署(c++版)

文章目录 一、Deepstream1.1 简介1.2 图架构&#xff08;Graph architecture&#xff09;1.3 应用架构&#xff08;Application Architecture&#xff09; 二、配置文件方式运行Deepstream2.1 环境准备2.2 主机运行2.3 配置文件解析2.4 docker运行 三、代码方式运行Deepstream3…

Python编程之旅:深入探索强大的容器——列表

在Python编程的世界中&#xff0c;容器&#xff08;Containers&#xff09;是一种用于存储多个项目的数据结构。其中&#xff0c;列表&#xff08;List&#xff09;是最常用且功能强大的容器之一。无论是初学者还是资深开发者&#xff0c;掌握列表的使用方法和技巧都是提升Pyth…

AcWing 835. Trie字符串统计

Problem: AcWing 835. Trie字符串统计 文章目录 思路解题方法复杂度Code 思路 这是一个使用Trie树&#xff08;字典树&#xff09;解决的问题。Trie树是一种用于快速查询、插入和删除字符串的数据结构。在这个问题中&#xff0c;我们需要处理四种操作&#xff1a;插入字符串、查…

【Android】重温Activity生命周期

前言 Android中用得最多的组件是Activity&#xff0c;而它的生命周期也是最基础的知识&#xff0c;从刚接触Android到工作中会频繁依赖这部分知识。可能大多数人能说出页面新建到页面关闭会走的生命周期&#xff1a;onCreate、onStart、onResume、onPause、onStop、onDestory&…

Linux --- 高级IO

目录 1. 什么是IO 2. 阻塞的本质 3. 五种IO模型 3.1. 通过故事认识五种IO模型 3.2. 上述故事的总结 3.3. 具体的五种IO模型 3.3.1. 阻塞IO 3.3.2. 非阻塞轮询式IO 3.3.3. 信号驱动IO 3.3.4. 多路转接IO 3.3.5. 异步IO 4. 非阻塞IO 4.1. fcntl 系统调用 1. 什么是I…

【前端】项目碰到的面试题整理

一、目录 js 中一个 、、 的区别 ?..es6 语法中将两个对象合并成一个对象&#xff0c;使用什么语法&#xff1f;…let、const、var 有什么区别&#xff1f;…jquery 中如何获取当前元素下一个同级元素&#xff1f;…JS 中的深拷贝与浅拷贝的区别&#xff1f;…如何在 JS 中编…