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

Day2力扣打卡

打卡记录

在这里插入图片描述


无限数组的最短子数组(滑动窗口)

链接

思路:先求单个数组的总和,再对两个重复数组所组成的新数组上使用 不定长的滑动窗口 来求得满足目标的最小长度。

class Solution {
public:int minSizeSubarray(vector<int>& nums, int target) {long long sum = accumulate(nums.begin(), nums.end(), 0LL);int ans = 0x3f3f3f3f, n = nums.size(), cnt = 0;for (int i = 0, j = 0; i < n * 2; ++i){cnt += nums[i % n];while (cnt > target % sum)cnt -= nums[j++ % n];if (cnt == target % sum) ans = min(ans, i - j + 1);}return ans == 0x3f3f3f3f ? -1 : ans + target / sum * n; }
};

螺旋矩阵 II(模拟)

链接

模拟向四个方向依次行进,遇到边缘调转为下个方向,同时遇到已经赋值过的位置也进行调转方向的操作。

class Solution {
public:vector<vector<int>> generateMatrix(int n) {int dx[4]{0, 1, 0, -1}, dy[4]{1, 0, -1, 0}, cnt = 0;int x = 0, y = 0, idx = 0;vector<vector<int>> mat(n, vector<int> (n, -1));while (cnt++ != n * n) {mat[x][y] = cnt;if (x + dx[idx] < 0 || x + dx[idx] >= n || y + dy[idx] < 0 || y + dy[idx] >= n || mat[x + dx[idx]][y + dy[idx]] != -1)idx = (idx + 1) % 4;x += dx[idx], y += dy[idx];}return mat;}
};
http://www.lryc.cn/news/196287.html

相关文章:

  • 项目经理每天,每周,每月的工作清单
  • Java —— 运算符
  • 【C++ 中的友元函数:解密其神秘面纱】
  • YOLOv8涨点技巧:手把手教程,注意力机制如何在不同数据集上实现涨点的工作,内涵多种网络改进方法
  • 牛客:FZ12 牛牛的顺时针遍历
  • 函数防抖(javaScript)
  • 日常学习记录随笔-redis实战
  • MySQL事务MVCC详解
  • SQL RDBMS 概念
  • onlyoffice的介绍搭建、集成过程。Windows、Linux
  • 37. 解数独
  • git cherry-pick 合并某次提交
  • 【面试HOT100】子串普通数组矩阵
  • XPSpeak软件教程-科学指南针
  • NLP算法面经 | 腾讯 VS 美团
  • 【广州华锐互动】塔吊多人安拆VR互动培训系统
  • Linux性能优化--性能工具:特定进程内存
  • MyLife - Docker安装rabbitmq
  • Leetcode刷题详解——长度最小的子数组
  • 客流人数管理新趋势:景区客流采集分析系统的功能特点
  • 【仙逆】王林极限跑酷,藤厉自食恶果,仙逆战斗获好评,张虎命运被改写
  • 想要精通算法和SQL的成长之路 - 前缀和的应用
  • 如何让大模型自由使用外部知识与工具
  • 关注用户信息卡片
  • 【Java基础面试十八】、说一说重写与重载的区别
  • Linux文件管理(上)
  • docker 复习
  • React之事件机制与事件绑定
  • spark stream入门案例:netcat准实时处理wordCount(scala 编程)
  • Ansible基础及模块