leetcode热门100题1-4
第一天
两数之和
//暴力枚举
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {if (nums[i] + nums[j] == target) {return {i, j};}}}return {};}
};
# python
class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:n = len(nums)for i in range(n):for j in range(i + 1, n):if nums[i] + nums[j] == target:return [i, j]return []
- 字母异位词分组
class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:mp={}for st in strs:key=''.join(sorted(st)) # str 字符串型print(type(key))print(type(sorted(st)))if key not in mp:mp[key]=[]mp[key].append(st)return list(mp.values())
// 排序 哈希
class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string ,vector<string> > mp;for(string &str: strs){string key=str;sort(key.begin(),key.end() );// 排序mp[key].push_back(str);}vector<vector<string> >ans;for(auto it=mp.begin(); it!=mp.end();++it){ans.push_back( it->second);// it 是 map(key,value) first second}return ans;}};
- 最长连续序列
对于匹配的过程,暴力的方法是 O(n)
遍历数组去看是否存在这个数,但其实更高效的方法是用一个哈希表存储数组中的数,这样查看一个数是否存在即能优化至 O(1) 的时间复杂度。
# python 前一个数字没有 即可看下一个
class Solution:def longestConsecutive(self, nums: List[int]) -> int:longest = 0num_set = set(nums)for num in num_set:if num - 1 not in num_set: # 前一个数字current_num = numcurrent_streak = 1while current_num + 1 in num_set:current_streak += 1current_num += 1longest = max(longest, current_streak)return longest
//c++
class Solution {
public:int longestConsecutive(vector<int>& nums) {// 去重unordered_set<int> num_set;for (const int& num : nums) {num_set.insert(num);}int longest=0;for (const int &num:num_set){if(!num_set.count(num-1)){int currentnum=num;int current=1;while(num_set.count(currentnum+1)) {currentnum+=1;current+=1;}longest=max(longest,current);}}return longest;}
};
std::unordered_set 的默认迭代器是一个常量迭代器,因此不能绑定到 int&
num_set 的迭代器类型是 const int(默认行为)
std::unordered_set 中的元素是不可修改的,因为哈希值依赖于元素的值。
- 移动零
右指针一直走 左指针非零时与左指针交换
class Solution {
public:void moveZeroes(vector<int>& nums) {int n = nums.size(), left = 0, right = 0;while (right < n) {if (nums[right]) {swap(nums[left], nums[right]);left++;}right++;}}
};
相关文章:
leetcode热门100题1-4
第一天 两数之和 //暴力枚举 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int n nums.size();for (int i 0; i < n; i) {for (int j i 1; j < n; j) {if (nums[i] nums[j] target) {return {i, j};}}}return {…...
作业:IO:day2
题目一 第一步:创建一个 struct Student 类型的数组 arr[3],初始化该数组中3个学生的属性 第二步:编写一个叫做save的函数,功能为 将数组arr中的3个学生的所有信息,保存到文件中去,使用fread实现fwrite 第三步…...
UVM: TLM机制
topic overview 不建议的方法:假如没有TLM TLM TLM 1.0 整个TLM机制下,底层逻辑离不开动作发起者和被动接受者这个底层的模型基础,但实际上,在验证环境中,任何一个组件,都有可能成为动作的发起者࿰…...
flink的EventTime和Watermark
时间机制 Flink中的时间机制主要用在判断是否触发时间窗口window的计算。 在Flink中有三种时间概念:ProcessTime、IngestionTime、EventTime。 ProcessTime:是在数据抵达算子产生的时间(Flink默认使用ProcessTime) IngestionT…...
arcgis的合并、相交、融合、裁剪、联合、标识操作的区别和使用
1、相交 需要输入两个面要素,最终得到的是两个输入面要素相交部分的结果面要素。 2、合并 合并能将两个单独存放的两个要素类的内容,汇集到一个要素类里面。 3、融合 融合能将一个要素类内的所有元素融合成一个整体。 4、裁剪 裁剪需要输入两个面要…...
【Leetcode 热题 100】20. 有效的括号
问题背景 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s s s,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每…...
比较procfs 、 sysctl和Netlink
procfs 文件系统和 sysctl 的使用: procfs 文件系统(/proc) procfs 文件系统是 Linux 内核向用户空间暴露内核数据结构以及配置信息的一种方式。`procfs` 的挂载点是 /proc 目录,这个目录中的文件和目录呈现内核的运行状况和配置信息。通过读写这些文件,可以查看和控制内…...
Leetcode 3413. Maximum Coins From K Consecutive Bags
Leetcode 3413. Maximum Coins From K Consecutive Bags 1. 解题思路2. 代码实现 题目链接:3413. Maximum Coins From K Consecutive Bags 1. 解题思路 这一题的话思路上整体上就是一个遍历,显然,要获得最大的coin,其选取的范围…...
MakeFile使用指南
文章目录 1. MakeFile 的作用2. 背景知识说明2.1 程序的编译与链接2.2 常见代码的文档结构 3. MakeFile 的内容4. Makefile的基本语法5. 变量定义5.1 一般变量赋值语法5.2 自动化变量 6. 通配符 参考: Makefile教程:Makefile文件编写1天入门 Makefile由浅…...
矩阵碰一碰发视频的视频剪辑功能源码搭建,支持OEM
在短视频创作与传播领域,矩阵碰一碰发视频结合视频剪辑功能,为用户带来了高效且富有创意的内容产出方式。这一功能允许用户通过碰一碰 NFC 设备触发视频分享,并在分享前对视频进行个性化剪辑。以下将详细阐述该功能的源码搭建过程。 一、技术…...
VB.NET CRC32 校验
在 VB.NET 中实现 CRC32 校验并在校验失败时退出程序,你可以按照以下步骤进行: 实现 CRC32 计算函数:首先,你需要一个函数来计算给定数据的 CRC32 值。 比较计算的 CRC32 值:然后,你需要将计算出的…...
冒充者综合征上线了
背景 今天干了一件蠢事儿,上周末咸鱼上有人拍了之前发布的一个java程序,基于 JWT 实现的一个五子棋游戏的源代码。想着反正又没事,就找到了移动硬盘拷贝出那个源代码上传网盘发货了。 今天买家找我说解压不了,我电脑解压正常。就…...
【大模型】百度千帆大模型对接LangChain使用详解
目录 一、前言 二、LangChain架构与核心组件 2.1 LangChain 核心架构 2.2 LangChain 核心组件 三、环境准备 3.1 前置准备 3.1.1 创建应用并获取apikey 3.1.2 开通付费功能 3.2 获取LangChain文档 3.3 安装LangChain依赖包 四、百度千帆大模型对接 LangChain 4.1 LL…...
Redis相关面试
以下是一些在面试中关于 Redis 最常被问到的问题,涵盖了 Redis 的基础概念、数据结构、持久化、主从复制、哨兵、集群、应用场景以及常见的缓存问题等。可以根据自身实际项目经验,结合下面的要点进行深入讲解。 1. Redis 基础与特点 Redis 是什么&#x…...
使用强化学习训练神经网络玩俄罗斯方块
一、说明 在 2024 年暑假假期期间,Tim学习并应用了Q-Learning (一种强化学习形式)来训练神经网络玩简化版的俄罗斯方块游戏。在本文中,我将详细介绍我是如何做到这一点的。我希望这对任何有兴趣将强化学习应用于新领域的人有所帮助…...
java中的日期处理:只显示日期,不显示时间的两种处理方式
需要记录某个操作的操作时间,数据库中该字段为DATE类型; 插入数据的时候,使用数据库函数NOW()获取当前日期并插入: <insert id"batchInsertOrgTestersByProjectId">insert into project_org_testers(project_un…...
腾讯云AI代码助手编程挑战赛——贪吃蛇小游戏
作品介绍 贪吃蛇小游戏需要控制蛇的移动方向,使其吃掉地图上随机出现的食物,每吃掉一个食物,蛇的身体就会增长一格,是一款老少皆宜的小游戏,我们可以用腾讯ai助手生成全部代码,简单方便快捷。 技术架构 …...
水水水水水
为了拿推广卷,但不想把我原本完整的文章拆成零散的多篇,只能出此下策随便发一篇,认真写的都笔记专栏里 5G与未来网络 5G技术一直是近几年讨论的热点。它不仅仅是提升手机上网速度,更是对万物互联(IoT)的一次…...
Spring整合SpringMVC
目录 【pom.xml】文件; 新建【applicationContext.xml】文件 新建【springmvc.xml】文件; 配置【src/main/webapp/WEB-INF/web.xml】文件; 新建【com.gupaoedu.service.IUserService】; 新建【com.gupaoedu.service.impl.Use…...
【Rust自学】10.4. trait Pt.2:trait作为参数和返回类型、trait bound
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 说句题外话,写这篇的时间比写所有权还还花的久,trait是真的比较难理解的概念。 10.4.1. 把trait作为参数 继续以…...
ESP居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现汉
前言 Kubernetes 本身并不复杂,是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps,这些基础组件简单直接,甚至显得有些枯燥。但后来我…...
终极算法面试指南:Tech-Interview-Cheat-Sheet助你轻松展示算法思维
终极算法面试指南:Tech-Interview-Cheat-Sheet助你轻松展示算法思维 【免费下载链接】Tech-Interview-Cheat-Sheet Studying for a tech interview sucks. Heres an open source cheat sheet to help 项目地址: https://gitcode.com/gh_mirrors/te/Tech-Interview…...
AICoverGen技术指南:从环境部署到专业AI翻唱制作
AICoverGen技术指南:从环境部署到专业AI翻唱制作 【免费下载链接】AICoverGen A WebUI to create song covers with any RVC v2 trained AI voice from YouTube videos or audio files. 项目地址: https://gitcode.com/gh_mirrors/ai/AICoverGen 问题篇&…...
比迪丽LoRA模型Agent智能体开发:自主完成多轮绘画创作任务
比迪丽LoRA模型Agent智能体开发:自主完成多轮绘画创作任务 最近在玩AI绘画的朋友,可能都有过这样的体验:脑子里有个很酷的画面,但把它变成AI能理解的提示词,却是个技术活。你得琢磨关键词、调整风格、设置参数&#x…...
梦幻动漫魔法工坊参数调优指南:简单几步让生成效果更完美
梦幻动漫魔法工坊参数调优指南:简单几步让生成效果更完美 1. 为什么需要参数调优 动漫图像生成工具的效果很大程度上取决于参数设置。就像摄影师需要调整相机参数一样,合理设置生成参数能让你的动漫作品更加精美。梦幻动漫魔法工坊提供了多个可调参数&…...
云容笔谈·东方红颜影像生成系统:剖析计算机组成原理与AI图像生成的底层关联
云容笔谈东方红颜影像生成系统:剖析计算机组成原理与AI图像生成的底层关联 你有没有想过,当你输入一段文字,AI就能为你生成一幅精美画作,这个过程和一台电脑运行程序有什么相似之处?今天,我们就来聊聊这个…...
Phi-4-mini-reasoning企业级部署:Nginx反向代理+HTTPS安全访问配置教程
Phi-4-mini-reasoning企业级部署:Nginx反向代理HTTPS安全访问配置教程 1. 项目介绍 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型,专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打"小参数、强推理、长上下文、低延迟…...
Nano-Banana软萌拆拆屋实操手册:Euler A采样算法调参指南
Nano-Banana软萌拆拆屋实操手册:Euler A采样算法调参指南 1. 引言:当AI遇见软萌拆解艺术 你是否曾经看着心爱的衣服,想知道它是由哪些部分组成的?或者作为一名设计师,想要清晰地展示服装的结构细节?Nano-…...
智慧农业草莓成熟度识别 基于cnn的YOLOv11深度学习 智慧农业草莓成熟度目标检测系统 草莓识别系统(数据集使用 YOLOv11 进行草莓成熟度计数与检测 注意:此模块是在以下资源的+模型+界面)
使用 YOLOv11 进行草莓成熟度计数与检测 注意:此模块是在以下资源的帮助下完成的:Detection_image.png1. 代码库中每个 Notebook 的说明Dataset split NB: 此 Notebook 用于将原始的 3000 张图片按 0.8、0.1 和 0.1 的比例分为训练集、验证集和测试集。N…...
如何用ok-ww实现《鸣潮》全自动战斗与声骸收集:终极懒人指南
如何用ok-ww实现《鸣潮》全自动战斗与声骸收集:终极懒人指南 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 你是否厌倦…...
