当前位置: 首页 > news >正文

算法第二天|209.长度最小的子数组,59.螺旋矩阵2, 区间和,开发商购买土地

209.长度最小的子数组

class Solution { public: int minSubArrayLen(int target, vector<int>& nums) { int num = nums.size(); int l = 0, ans = num + 1, sum = 0; for(int r = 0; r < num; r++){ sum += nums[r]; while(sum >= target){ ans = min(ans, r-l+1); sum -= nums[l]; l++; } } return ans <= num ? ans:0; } };

思路:滑窗,右指针循环迭代,数组内依次相加,检测到有超过target的比较最小的,减去左指针

58. 区间和

#include <iostream> #include <vector> using namespace std; int main() { int n, a, b; cin >> n; vector<int> arr(n); vector<int> ans(n); int temp = 0; for (int i = 0; i < n; i++) { cin >> arr[i]; temp += arr[i]; ans[i] = temp; } while (cin >> a >> b) { int sum; if (a == 0) sum = ans[b]; else sum = ans[b] - ans[a - 1]; cout << sum << endl; } }

思路:第一次接触到前缀和概念,在构造数组的时候,计算出区间和

59螺旋矩阵2

class Solution { int DIRS[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; public: vector<vector<int>> generateMatrix(int n) { vector ans(n, vector<int>(n)); int i = 0, j = 0, di = 0; for (int val = 1; val <= n * n; val++) { ans[i][j] = val; int x = i + DIRS[di][0]; int y = j + DIRS[di][1]; if (x < 0 || x >= n || y < 0 || y >= n || ans[x][y]) { di = (di + 1) % 4; } i += DIRS[di][0]; j += DIRS[di][1]; } return ans; } };

DIRS代表四个方向

开发商购买土地

#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)) ; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> vec[i][j]; sum += vec[i][j]; } } // 统计横向 vector<int> horizontal(n, 0); for (int i = 0; i < n; i++) { for (int j = 0 ; j < m; j++) { horizontal[i] += vec[i][j]; } } // 统计纵向 vector<int> vertical(m , 0); for (int j = 0; j < m; j++) { for (int i = 0 ; i < n; i++) { vertical[j] += vec[i][j]; } } int result = INT_MAX; int horizontalCut = 0; for (int i = 0 ; i < n; i++) { horizontalCut += horizontal[i]; result = min(result, abs(sum - horizontalCut - horizontalCut)); } int verticalCut = 0; for (int j = 0; j < m; j++) { verticalCut += vertical[j]; result = min(result, abs(sum - verticalCut - verticalCut)); } cout << result << endl; }
http://www.cnnetsun.cn/news/1717440.html

相关文章:

  • ComfyUI Essentials插件:为什么每个AI绘画用户都需要这个工具包?✨
  • Qwen3-Reranker-0.6B部署教程:3步搞定本地语义重排序服务
  • Qwen3.5-9B Android Studio智能插件构想:代码审查与资源优化
  • Course17:SGLang 深度优化:Radix 缓存与复杂任务的极致吞吐
  • 简单三步:用Qwen3-ForcedAligner-0.6B为视频配音自动生成SRT字幕文件
  • OpenClaw对接千问3.5-27B实战:5步完成本地自动化助手部署
  • 构建企业内部知识库引擎:Qwen3-0.6B-FP8+RAG技术实践
  • QMK Toolbox:开源固件管理工具的全面解析与实践指南
  • Docker在CI/CD中的完整工作流:从本地开发到生产部署,一篇看懂
  • UsbDk架构解析:Windows USB设备独占访问的技术实现
  • RVC训练避坑指南:logs与weights目录文件结构深度解析
  • WaveTools:突破鸣潮帧率限制的技术解决方案
  • 3分钟上手!无需Steam客户端,免费下载创意工坊模组的终极指南
  • Wan2.2-I2V-A14B快速上手:基于RTX4090D的私有部署,WebUI可视化操作超简单
  • 新手必看:用APM飞控给F450无人机调参,从GPS校准到遥控器设置保姆级避坑指南
  • PyTorch版本选择避坑指南:如何在VSCode中快速安装兼容CUDA的稳定版本
  • 如何3分钟掌握跨平台Adobe插件安装:ZXPInstaller终极指南
  • SAP 预留(Reservation)实战指南:从创建到释放的全流程解析
  • 从单体到微服务:FastAPI项目中如何用Tortoise-ORM设计可扩展的RBAC权限中心
  • Kimi-VL-A3B-Thinking多场景:工业设备铭牌图→多语言识别→参数库匹配→维修建议
  • 新手入门:nanobot超轻量AI助手部署指南,5分钟拥有智能QQ助手
  • Phi-4-mini-reasoning加速深度学习:卷积神经网络(CNN)模型设计与调优实战
  • Phi-4-mini-reasoning应用场景:自动驾驶决策树逻辑验证与边界案例生成
  • 老旧Mac焕新指南:使用OpenCore Legacy Patcher升级系统的完整方案
  • vLLM实战体验:结合医疗数据集微调模型,打造专属AI助手
  • PyTorch 2.5实战教程:10个核心API详解,轻松搭建你的第一个AI模型
  • SegFormer:从原理到实践,剖析轻量级语义分割Transformer架构
  • VibeVoice在医疗问诊机器人中的语音交互实现
  • 小红书内容采集终极指南:3分钟掌握XHS-Downloader高效下载技巧
  • 面向高速OOK接收机的FPGA定时同步:Gardner误差检测与Farrow插值滤波器设计