代码随想录day2 数组总结

1.二分查找

2.快慢 双指针

代码随想录day1-CSDN博客

3.滑动窗口

滑动窗口就是有一个起始位置,一个终止位置,通过调节起始位置和终止位置得到我们想要的结果。

外面一层for循环    用来更新终止位置   不满足条件 终止位置右移

里面一层while循环  用来更新起始位置   满足条件 起始位置右移

209. 长度最小的子数组 - 力扣(LeetCode)

int minSubArrayLen(int target, vector<int>& nums) {int i = 0;int reslut = 100001;int subL = 0;int sum = 0;for(int j = 0; j < nums.size(); j++){sum += nums[j];while(sum >= target){subL = j - i + 1;reslut = min(reslut, subL);sum -= nums[i];i++;}}if(reslut == 100001)return 0;else return reslut;}

904. 水果成篮 - 力扣(LeetCode)

int totalFruit(vector<int>& fruits) {int i = 0;int result = 0;unordered_map<int, int> kind; //记录水果种类数for(int j = 0; j < fruits.size(); j++){kind[fruits[j]]++;while(kind.size() > 2){kind[fruits[i]]--;if(kind[fruits[i]] == 0){kind.erase(fruits[i]); //如果某种水果数量等于0,从哈希表中移除}i++;}result = max(result, j - i + 1);}return result;}

76. 最小覆盖子串 - 力扣(LeetCode)

string minWindow(string s, string t) {if(s.empty() || t.empty() || s.size() < t.size())return "";int result = INT_MAX;int i = 0;unordered_map<char, int>t_count;unordered_map<char, int> window_count;for(int j = 0; j < t.size(); j++){t_count[t[j]]++;}int num = 0;int left = 0;for(int j = 0; j < s.size(); j++){window_count[s[j]]++;if(window_count[s[j]] == t_count[s[j]]){num++;}while(num == t_count.size()){int temp = j - i + 1;if(temp < result){result = temp;left = i;}if(t_count.find(s[i]) != t_count.end()){if(window_count[s[i]] == t_count[s[i]]){num--;}//本来有可能大于或等于window_count[s[i]]--;}i++;}}return result == INT_MAX ? "":s.substr(left, result);}

4.螺旋矩阵模拟

左闭右开,循环模拟

59. 螺旋矩阵 II - 力扣(LeetCode)

vector<vector<int>> generateMatrix(int n) {int starx = 0, stary = 0;int offset = 1;vector<vector<int>> re(n, vector<int>(n,0));int count = 1;int i, j;while(offset <= n/2){i = starx;j = stary;for(; j < n - offset; j++){re[i][j] = count++;}for(; i < n - offset; i++){re[i][j] = count++;}for(; j > stary; j--){re[i][j] = count++;}for(; i > starx; i--){re[i][j] = count++;}offset++;starx++;stary++;}if(n % 2 != 0)re[n/2][n/2] = count;return re;}

 54. 螺旋矩阵 - 力扣(LeetCode)

vector<int> spiralOrder(vector<vector<int>>& matrix) {if(matrix.size() == 0 || matrix[0].size() == 0)return {};vector<int> re; int starx = 0, stary = 0;int w = matrix[0].size();int h = matrix.size();int i, j;int offset = 1;while(offset <= min(w,h)/2){i = starx;j = stary;for(; j < w - offset; j++){re.push_back(matrix[i][j]);}for(;i < h - offset; i++){re.push_back(matrix[i][j]);}for(; j > stary; j--){re.push_back(matrix[i][j]);}for(; i > starx; i--){re.push_back(matrix[i][j]);}offset++;starx++;stary++;}if(h % 2 != 0 && w >= h){int offset = h/2;for(int j = offset; j < w - offset; j++){re.push_back(matrix[offset][j]);}}else if(w % 2 != 0 && w < h){int offset = w/2;for(int i = offset; i < h - offset; i++){re.push_back(matrix[i][offset]);}}return re;}

5.区间和

把前缀和保存起来后面直接用

58. 区间和(第九期模拟笔试)

#include<iostream>
#include<vector>
using namespace std;int main(){int n, a, b;cin >> n;int re = 0;vector<int> vec(n);vector<int> sum(n);   // 前缀和for(int i = 0; i < n; i++){int t;cin >> t;vec[i] = t;if(i == 0)sum[i] = t;else sum[i] = t + sum[i-1];}while(cin >> a >> b){if(a == 0)re = sum[b];else re = sum[b] - sum[a-1];cout << re << endl;}}

44. 开发商购买土地(第五期模拟笔试)

#include<iostream>
#include<vector>
#include <climits>
using namespace std;int main(){int n, m;cin >> n >> m;int sum = 0;vector<vector<int>> vec(n, vector<int>(m, 0));vector<int> w(n, 0);  //横向vector<int> h(m, 0);  //纵向for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){int t = 0;cin >> vec[i][j];sum += vec[i][j];w[i] += vec[i][j];}}for(int j = 0; j < m; j++){for(int i = 0; i < n; i++){h[j] += vec[i][j];}}int result = INT_MAX;int t = 0;for(int i  = 0; i < n; i++){t += w[i];result = min(result, abs(sum - t - t));}t = 0;for(int j = 0; j < m; j++){t += h[j];result = min(result, abs(sum - t - t));}cout << result << endl;
}

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

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

相关文章

MAC安装docker 后提示com.docker.vmnetd”将对您的电脑造成伤害

出现“com.docker.vmnetd”将对您的电脑造成伤害的提示&#xff0c;通常是由于文件签名问题导致 macOS 的安全系统误判 Docker 为恶意软件。以下是解决方法&#xff1a; 停止相关服务并删除文件 运行以下命令停止相关服务并删除有问题的文件 停止 Docker 服务 sudo pkill ‘…

Redis-常用命令

目录 1、Redis数据结构 2、命令简介 2.1、通用命令 DEL EXISTS EXPIRE 2.2、String命令 SET和GET MSET和MGET INCR和INCRBY和DECY SETNX SETEX 2.3、Key的层级结构 2.4、Hash命令 HSET和HGET HMSET和HMGET HGETALL HKEYS和HVALS HINCRBY HSETNX 2.5、List命…

每日一题之既约分数

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 如果一个分数的分子和分母的最大公约数是 1&#xff0c;这个分数称为既约分数。 例如 3/4,1/8,7/1​&#xff0c; 都是既约分数。 请问&#xff0c;有多少个既约分…

Java 图片压缩:高效压缩方案解析

目录 一、基于OpenCV的智能尺寸压缩(一)代码示例(二)技术亮点(三)适用场景二、WebP高效格式转换(一)代码示例(二)核心优势(三)性能对比三、基于Thumbnailator的简单压缩(一)代码示例(二)技术亮点(三)适用场景四、方案选型建议一、基于OpenCV的智能尺寸压缩 …

鸿蒙Next-集成HmRouter的路由模式

第一步&#xff1a;全局安装hmrouter依赖 ohpm install hadss/hmrouter第二步&#xff1a;修改全局的hvigor-config.json5(加入hm-router插件) hvigor/hvigor-config.json5 {"modelVersion": "5.0.1","dependencies": {"hadss/hmrouter-…

uni-app:指引蒙层

组件说明 指引蒙层组件: 通过id标签,突出对应id中的模块; 可以自定义提示词。 点击任意位置关闭蒙层 效果展示和使用示例 切换id之后的效果: 代码实现 <template><view class="guide-mask" v-if="showMask" @click="hideMask"&g…

基于Java与Go的下一代DDoS防御体系构建实战

引言:混合云时代的攻防对抗新格局 2024年某金融平台遭遇峰值2.3Tbps的IPv6混合攻击,传统WAF方案在新型AI驱动攻击面前全面失效。本文将以Java与Go为技术栈,揭示如何构建具备智能决策能力的防御系统。 一、攻击防御技术矩阵重构 1.1 混合攻击特征识别 攻击类型Java检测方案…

大数据Spark(五十五):Spark框架及特点

文章目录 Spark框架及特点 一、Spark框架介绍 二、Spark计算框架具备以下特点 Spark框架及特点 一、Spark框架介绍 Apache Spark 是一个专为大规模数据处理而设计的快速、通用的计算引擎。最初由加州大学伯克利分校的 AMP 实验室&#xff08;Algorithms, Machines, and Pe…

ubuntu 升级补丁,备份备份备份

一、常规软件包更新&#xff08;安全补丁和软件升级&#xff09; 更新软件包列表 从软件源服务器获取最新的软件包信息&#xff1a; sudo apt update升级已安装的软件包 安装所有可用的更新&#xff08;安全补丁、功能更新&#xff09;&#xff1a; sudo apt upgrade处理依赖…

CubeMx——串口与 printf 打印

CubeMx 配置 fputc 实现 /* USER CODE BEGIN 0 */ #include <stdio.h> /* USER CODE END 0 *//* USER CODE BEGIN 1 */ int fputc(int ch, FILE *f) {/* Place your implementation of fputc here *//* e.g. write a character to the USART */uint8_t send_data ch;HA…

多线程 -- Thread类

Thread 的常见构造方法 最后一个构造方法中的 ThreadGroup 线程组是 Java 中的概念&#xff0c;和系统内核中的线程组不是一个东西。我们自己创建的线程&#xff0c;默认是按照 Thread- 0 1 2 3 4...命名。但我们也可以给不同的线程&#xff0c;起不同的名字&#xff08;不同的…

Java基础关键_032_反射(二)

目 录 一、反射 Class 的 Method 1.反编译 String 类的方法签名 2.通过反射调用方法 3.反编译 String 类的构造方法签名 4.通过反射调用构造方法 二、类加载过程 1.装载&#xff08;Loading&#xff09; &#xff08;1&#xff09;说明 &#xff08;2&#xff09;双亲委…

《数据结构:单链表》

“希望就像星星&#xff0c;或许光芒微弱&#xff0c;但永不熄灭。” 博主的个人gitee&#xff1a;https://gitee.com/friend-a188881041351 一.概念与结构 链表是一种物理存储上非连续、非顺序的存储结构&#xff0c;数据元素的顺序逻辑是通过链表中的指针链接次序实现的。 单…

蓝桥杯 - 中等 - 绝美宋词

介绍 “今宵酒醒何处&#xff0c;杨柳岸晓风残月”&#xff0c;“蓦然回首&#xff0c;那人却在灯火阑珊处”&#xff0c;“试问闲愁都几许&#xff1f;一川烟草&#xff0c;满城风絮&#xff0c;梅子黄时雨” ...... 宋词可谓是古代文学桂冠上一颗璀璨的明珠&#xff0c;本题…

JDBC、excute()、DriveManager、Connection、Statement、自建JDBC工具类、占位符

DAY19.2 Java核心基础 JDBC JDBC&#xff1a;Java database Connectivity JDBC是java程序连接各种数据库的组件 Mybatis就是基于JDBC的封装&#xff0c;是独立于数据库的管理系统&#xff0c;通用的SQL数据库存取和操作的公共接口 定义了一套标准&#xff0c;为访问 不同数…

21天Python计划:函数简单介绍

文章目录 前言一、函数知识体系二、函数基础函数的定义和调用函数参数 三、函数对象、函数嵌套、名称空间与作用域、装饰器函数对象函数嵌套名称空间与作用域装饰器 四、迭代器、生成器、面向过程编程迭代器生成器面向过程编程 五、三元表达式、列表推导式、生成器表达式、递归…

污水处理厂人员定位方案-UWB免布线高精度定位

1. 方案概述 本方案采用免布线UWB基站与北斗卫星定位融合技术&#xff0c;结合UWBGNSS双模定位工卡&#xff0c;实现污水处理厂室内外人员高精度定位&#xff08;亚米级&#xff09;。系统通过低功耗4G传输数据&#xff0c;支持实时位置监控、电子围栏、聚集预警、轨迹回放等功…

无人机DSP处理器工作要点!

一、DSP处理器在无人机中的工作要点 1. 高效运算架构 哈佛结构&#xff1a;DSP采用程序与数据存储分离的哈佛结构&#xff0c;允许同时访问指令和数据&#xff0c;提升数据吞吐效率。 流水线技术&#xff1a;将指令分解为取指、译码、执行等多个阶段并行处理&#xff0c…

MySQL查询成本计算

对于如上SQL&#xff0c;只是因为查询字段不同&#xff0c;最终执行时选择的索引就不同&#xff0c;那么MySQL是如何决定选择使用哪个索引呢&#xff1f; 答案是MySQL会进行成本计算&#xff0c;对于各个场景查询进行成本预估&#xff0c;最终选择最优。 我们可以使用trace工具…

《K230 从熟悉到...》矩形检测

《K230 从熟悉到...》矩形检测 《庐山派 K230 从熟悉到...》矩形检测 矩形检测技术是一种广泛应用于电子图像处理的核心技术。它通过识别和分析图像中的矩形结构&#xff0c;为各种应用提供基础支持。从传统图像处理算法到现代深度学习技术&#xff0c;矩形检测的实现途径多种多…