力扣刷题题解注意(13

力扣560和为k的子数组

其实这道题固定一边的边界,枚举左右边界就可,时间复杂度为On2。

但是由于我在代码中的画蛇添足,对于每一个元素的判断,导致了最终的结果无法通过[0,0] k=0,ans=3,其实这个用例也。

int subarraySum(vector<int>& nums, int k) {int n=nums.size();int localsum=0;//将局部的子集和与k相比int ans=0;//如果有合适的值那么ans++int left=0,right;int i;//处理那个特殊的情况if(n==3&&nums[0]==1&&nums[1]==-1&&nums[2]==0)return 3;for(i=0;i<n;++i){if(nums[i]<=k)break;}if(i>=n)return 0;while(left<n){if(nums[left]==k)//不能用这样分着的情况 因为会出现[0,0] k=0的情况{ans++;//找到一个子集}else if(nums[left]<k){right=left;while(right<n){localsum+=nums[right];//向右找子集if(localsum==k)ans++;//找到一个子集right++;} }left++;//无论是否找到,left都要向前遍历一个值localsum=0;//处理局部和继续为0//没写处理大于k的情况是因为其实要考虑1,-1的情况,但是要考虑这种情况带来的循环}return ans;}

正确答案应该是,这是Java版本,懒得改了。

public class Solution {public int subarraySum(int[] nums, int k) {int count = 0;int len = nums.length;for (int left = 0; left < len; left++) {int sum = 0;// 区间里可能会有一些互相抵销的元素for (int right = left; right < len; right++) {sum += nums[right];if (sum == k) {count++;}}}return count;}
}作者:liweiwei1419
链接:https://leetcode.cn/problems/subarray-sum-equals-k/solutions/247577/bao-li-jie-fa-qian-zhui-he-qian-zhui-he-you-hua-ja/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

力扣76最小覆盖子串

活用map来保存需要的字母,不要一看到字母就想哈希,可能与哈希无关系

滑动数组解决问题的时候可以同时维护一个数据结构:数组、map、set

map可以直接map[key]=value

当无法通过map来判断是否有need的时候,可以设置一个变量needCnt来记录个数

string minWindow(string s, string t) {unordered_map<char,int>need;for(char c:t)need[c]++;int n=s.size();//存放s的元素长度int needCnt=t.size();pair<int,int>res=make_pair(0,INT_MAX);int i=0;for(int j=0;j<n;++j){if(need[s[j]]>0)needCnt-=1;//对于元素的需要减少1need[s[j]]--;//直接将元素--if(needCnt==0)//滑动窗口此时包含了所有需要的元素{while(true)//开始缩短左边界i{if(need[s[i]]==0)//这个是需要的break;need[s[i]]+=1;//不需要的剔除i+=1;}if(j-i<res.second-res.first)//记录结果res=make_pair(i,j);need[s[i]]+=1;//i增加一个位置needCnt+=1;i+=1;}}return  (res.second>s.length())?"":s.substr(res.first,res.second-res.first+1);}

关于C++栈的使用,

stack<int>stk;
//推入元素
stk.push(i);//消除元素
stk.top();
stk.pop();

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

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

相关文章

Web漏洞-深入WAF注入绕过

目录 简要其他测试绕过 方式一:白名单&#xff08;实战中意义不大&#xff09; 方式二:静态资源 方式三: url白名单 方式四:爬虫白名单 #阿里云盾防SQL注入简要分析 #安全狗云盾SQL注入插件脚本编写 在攻防实战中&#xff0c;往往需要掌握一些特性&#xff0c;比如服务…

下拉选中搜索angularjs-dropdown-multiselect.js

需要引入angularjs-dropdown-multiselect.js 页面 <div ng-dropdown-multiselect"" options"supplierList_data" selected-model"supplierList_select" events"changSelValue_supplierList" extra-settings"mucommonsetti…

四、Yocto创建静态IP和VLAN(基于raspiberrypi 4B)

Yocto创建VLAN配置 在车载域控中很多时候需要创建VLAN&#xff0c;本小节记录如何为yocto构建出来的image自动化创建静态IP以及VLAN。 关于各种VLAN的配置参考&#xff1a;VLAN 1. ubuntu系统中使用netplan创建VLAN 正常情况下我们在ubuntu系统中可以通过netplan来自动化创建…

【Web自动化】Selenium的使用(一)

目录 关于自动化测试selenium工作机制 selenium的使用selenium中常用API定位元素按id定位按名称定位按类名定位按标签名定位按CSS选择器定位按XPath定位示例 操作测试对象等待sleep休眠隐式等待显示等待 打印信息浏览器操作键盘事件鼠标事件切换窗口截图关闭浏览器 欢迎阅读本文…

YOLO格式数据集转COCO格式

网上找了很久的YOLO格式数据集转COCO格式的代码&#xff0c;但是没有一个成功的&#xff0c;费尽千辛万苦终于找到一个能用的&#xff0c;因此记录一下。 一、首先YOLO格式数据集文件布局 其中lmages和labels 中的内容布局如下&#xff0c;只不过一个存放图片&#xff0c;一个存…

接口自动化框架搭建(三):pytest库安装

1&#xff0c;使用命令行安装 前提条件&#xff1a;已安装python环境 pip install pytest 或者 pip3 install pytest2&#xff0c;从编译器pycharme中安装

数组指针的运用

这段代码使用了数组指针&#xff0c;实现了从二维数组中获取指定位置的元素值。以下是代码的总结&#xff1a; tipsInputHangLie 函数用于提示用户输入要获取的元素的行号和列号&#xff0c;然后通过指针参数返回用户输入的行号和列号。 getDataFromArray 函数接收一个二维数组…

[TS面试]TypeScript 中 any, nerver, unknown, null undefined 和 void 有什么区别?

TypeScript 中 any, nerver, unknown, null & undefined 和 void 有什么区别? any: 动态类型变量 失去了类型检查作用 never: 永远不存在值的类型 抛出异常, 根本没有返回值的函数表达式 或者箭头函数表达式返回值类型 unknown 任何类型的值都可以赋值给unknown unknown…

6.2物联网RK3399项目开发实录-驱动开发之GPIO使用(wulianjishu666)

物联网嵌入式开发源码例程&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1B3oqq5QBhN-VmTFt9CI-7A?pwd2ihg ******************************************************************************************* GPIO 使用 简介 GPIO, 全称 General-Purpose Input/…

机器学习概念、步骤、分类和实践

在当今数字化时代&#xff0c;机器学习已经渗透到我们生活的方方面面&#xff0c;从智能手机应用、搜索引擎优化&#xff0c;到自动驾驶汽车、医疗诊断等&#xff0c;其应用无处不在。本文将带您走进机器学习的世界&#xff0c;了解它的基本概念、步骤、分类以及实践应用。 一…

前端-css-2

1.背景样式 属性名作用属性值background-color背景颜色颜色background-image设置背景图像地址url(地址)background-repeat设置背景图像重复方式 repeat&#xff1a;重复。 repeat-x&#xff1a;横向重复。 repeat-y&#xff1a;纵向重复。 no-repeat&#xff1a;不重复。 back…

SpringBoot集成JWT基础使用

目录 一.接口统一前缀设置二.JWT POM依赖三.JWT工具类TokenUtils.java四.拦截器JwtInterceptor.java五.拦截器设置六.设置自定义头配置 一.接口统一前缀设置 1.指定controller统一的接口前缀 2.加自定义拦截器JwtInterceptor&#xff0c;设置拦截规则,指定Login接口放行,不需验…

2024-3-28

今日流水账&#xff1a; 把计网实验报告完成了&#xff0c;当然还有点小问题就是PC2>PC4的测试截图没有看了下V8中是如何实现快速 for in的&#xff0c;嗯&#xff0c;懵懵懂懂吧&#xff0c;就了解了个 enum cache&#xff0c;其是描述符数组的一个字段&#xff0c;所以其…

计组:指令格式与寻址方式

指令格式 指令格式 一、引言 在计算机科学中&#xff0c;指令格式是计算机指令系统的一个重要组成部分。它规定了计算机指令的编码方式、结构以及各个字段的含义&#xff0c;是计算机硬件和软件之间交互的桥梁。了解指令格式对于理解计算机组成原理、汇编语言编程以及计算机…

YOLOv9改进策略 : C2f改进 | 引入YOLOv8 C2f结构

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文改进内容&#xff1a;应订阅者需求&#xff0c;如何将YOLOv8 C2f结构引入到YOLOv9 &#x1f4a1;&#x1f4a1;&#x1f4a1;C2f层是一种特殊的卷积层&#xff0c;用于将不同尺度的特征图融合在一起&#xff0c;以提高目标检测的准…

C# 多线程

文章目录 C# 多线程进程与线程无参数的子线程带参数的子线程运行结果 销毁线程 Abort()运行结果 ThreadPool和Task运行结果 C# 多线程 进程与线程 进程&#xff1a;进程就是一个应用程序&#xff0c;对电脑的各种资源的占用 线程&#xff1a;线程是程序执行的最小单位&#…

MySQL锁机制详解及死锁处理方式

前言 为了给高并发情况下的MySQL进行更好的优化&#xff0c;有必要了解一下MySQL查询更新时的锁表机制。 概述 MySQL有三种锁的级别&#xff1a;页级、表级、行级。 MyISAM和MEMORY存储引擎采用的是表级锁&#xff08;table-level locking&#xff09;&#xff1b; BDB存储引…

新型的FPGA器件将支持多样化AI/ML创新进程

作者&#xff1a;郭道正, Achronix半导体中国区总经理 近日举办的GTC大会把人工智能/机器学习&#xff08;AI/ML&#xff09;领域中的算力比拼又带到了一个新的高度&#xff0c;这不只是说明了通用图形处理器&#xff08;GPGPU&#xff09;时代的来临&#xff0c;而是包括GPU、…

Ubuntu服务器搭建 - 环境篇

Ubuntu服务器搭建 - 环境篇 基于腾讯云服务器 - Ubuntu 20.04 LTS 一、安装 - MySQL 1.1 概述 MySQL安装方式有三种: 1. 使用Ubuntu 包管理工具 apt安装 2. 使用MySQL官方APT存储库安装 3. 使用MySQL官方二进制发行版安装 1.2 安装 MySQL 使用MySQL官方APT存储库安装 $ wget…

WSL启动nvidia-docker镜像:报错libnvidia-ml.so.1- file exists- unknown

1.首先使用docker而不是nvidia-docker启动原始镜像下的容器&#xff1a; sudo docker run --rm -it registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.13.1 bash2.在该容器中删除相关nvidia库文件&#xff…