Day2 |977.有序数组的平方 209.长度最小的子数组59.螺旋矩阵II

news/2024/10/6 3:59:48/文章来源:https://www.cnblogs.com/flydandelion/p/18284919

977.有序数组的平方

这题太简单了,中间的排序我用的选择排序

贴代码了

public int[] sortedSquares(int[] nums) {for (int i = 0; i < nums.length; i++) {nums[i] = nums[i]*nums[i];}for (int i = 0; i < nums.length; i++) {int min = i;for (int j = i+1; j < nums.length; j++) {if(nums[min]>nums[j]){min = j;}}if(nums[min]!=nums[i]){int tmp = nums[i];nums[i] = nums[min];nums[min] = tmp;}}return nums;}

209.长度最小的子数组

思路 : 我刚开始想的解法就是双指针滑动解法,如果使用双指针滑动暴力解法最后在力扣里面会超时,但是自己测试没有问题

但是想通过力扣确实还需要优化成下面所谓的滑动窗口的解法.

@Testpublic void test2() {int[] nums = {2, 3, 1, 2, 4, 3};int target = 7;System.out.println(minSubArrayLen2(target, nums));}public int minSubArrayLen(int target, int[] nums) {//双指针暴力解法int sum;int res = Integer.MAX_VALUE;if (target == 0) {return 0;}for (int i = 0; i < nums.length; i++) {sum = 0;for (int j = i; j < nums.length; j++) {sum += nums[j];if (sum >= target) {if (res > j - i + 1) {res = j - i + 1;break;}}}}if (res == Integer.MAX_VALUE) return 0;return res;}public int minSubArrayLen2(int target, int[] nums) {//比较简洁的解法,也就是所谓的滑动窗口解法int left = 0;int right = 0;int res = Integer.MAX_VALUE;int sum = nums[0];while (true) {if (sum >= target) {if (res > right - left + 1) {res = right - left + 1;}sum -= nums[left];left++;} else {right++;if (right >= nums.length) {if (res == Integer.MAX_VALUE) return 0;else return res;}sum += nums[right];}}

59.螺旋矩阵II

这题我之前做过对角线矩阵和旋转矩阵,我一般的思路都是直接模拟矩阵,然后把矩阵构造出来

至于这种方式在之后的矩阵题目中可不可行,还有待验证.

	@Testpublic void test3() {int n = 4;int[][] res = generateMatrix(n);for (int i = 0; i < res.length; i++) {for (int j = 0; j < res.length; j++) {System.out.print(res[i][j] + "\t");}System.out.println();}}public int[][] generateMatrix(int n) {int[][] matrix = new int[n][n];int num = 1;int l = 0;int r = n - 1;int t = 0;int b = n - 1;while (num <= n * n) {for (int i = l; i <= r; i++) {// 从左向右matrix[t][i] = num;num++;}t++;for (int i = t; i <= b; i++) { // 从上到下matrix[i][r] = num;num++;}r--;for (int i = r; i >= l; i--) { //从右到左matrix[b][i] = num;num++;}b--;for (int i = b; i >= t; i--) { // 从下到上matrix[i][l] = num;num++;}l++;}return matrix;}

小插曲 关于动态规划

动态规划今天有些顿悟,但还需要验证自己的想法

猜想 :

  1. 动态规划是通过转移方程体现动态的

  2. 动态规划是通过计算所有情况的状态,存入数组,来实现对某一状态的快速查找

  3. 动态规划中很多状态的重复转移导致我们可以把这类情况总结为一个状态转移方程

  4. 一般可以写成动态规划的题都有一部分可以使用递归的特征

  5. 动态规划有一些状态不在可重复转移的过程中,因此状态转移方程才出现常见的解题思路中的边界条件,其实边界条件理解为另外的状态转移方程比较好.

  6. 状态转移方程分为两个:

    • 一般情况下的状态转移方程
    • 边界情况下的状态转移方程
  7. 关于使用动态规划思维的题的返回值,通常是状态转移的目标结果.

以上均为我的猜想,目前还没有验证猜想,等后续更新吧.

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

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

相关文章

常见Linux命令

1、查看目录:ls 常用用法: ls -l :以列表的形式展示;简写ll效果展示:2、终端清屏:clear 常用用法: ctr+L:清空屏幕当前的内容,不会重置终端效果展示: 使用前使用后3、切换目录:cd 常用用法:cd /:切换到根目录cd /xx(目录名) :切换到根目录下的xx目录cd ..:切换…

R语言大学城咖啡店消费问卷调查报告:信度分析、主成分分析可视化

全文链接:https://tecdat.cn/?p=34656 原文出处:拓端数据部落公众号 本次调查旨在了解文汇路咖啡店的市场状况,以便为学校周边咖啡店的经营发展提供积极的引导意义。我们通过问卷调查的方式,收集了大量的数据,通过r软件对数据进行了基本情况分析、信度分析、问卷调查数据…

R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型|附代码数据

全文链接:http://tecdat.cn/?p=32496 原文出处:拓端数据部落公众号 人口流动与迁移,作为人类产生以来就存在的一种社会现象,伴随着人类文明的不断进步从未间断。 人力资源是社会文明进步、人民富裕幸福、国家繁荣昌盛的核心推动力量。当前,我国经济正处于从以政府主导的投…

1panel搭建halo+alist+兰空图床

由于服务器更新过后,ssh连接不上,机商vnc延迟卡的很,输个命令都不行,刚好centos断更了,换ubuntu系统了。也顺便从MySQL转到PostgreSQL。这个算是个记录,给有基础的人看的,你连ssh都不会连,那你得自己一步一步慢慢百度来。其实还是比较无脑的,除了1panel的反代,感觉设…

7.4

1005.K次取反后最大化的数组和 题意描述:[!NOTE] 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数组 可能的最大和 。 示例 1…

【专题】2024年6月数字化行业报告合集汇总PDF分享(附原数据表)

原文链接:https://tecdat.cn/?p=36658 原文出处:拓端数据部落公众号 随着科技的飞速发展和全球数字化进程的加速推进,我们正处在一个充满变革与机遇的时代。从人工智能的深入应用到工业互联网的蓬勃发展,从智慧医疗的兴起到新能源汽车的普及,每一个领域都在经历着前所未有…

Body SurfaceModel Geometry

Body SurfaceModel Geometry 实体曲面模型几何图形是通过曲面模型表示产品的三维形状。应使用保持该几何表示的IfcShapeResentation的以下属性值:IfcShapeRepresentation.RepresentationIdentifier = Body IfcShapeRepresentation.RepresentationType = SurfaceModel IfcShape…

CSRF攻击与修复

基本原理受害者登录a.com,并保留了登录凭证(Cookie)。 攻击者引诱受害者访问了b.com。 b.com 向 a.com 发送了一个请求:a.com/act=xx。浏览器会默认携带a.com的Cookie。 a.com接收到请求后,对请求进行验证,并确认是受害者的凭证,误以为是受害者自己发送的请求。 a.com以…

同步、异步、阻塞、非阻塞、Linux五种 I/O 模型,一篇文章搞定

●什么是同步、什么是异步?什么是阻塞、什么非阻塞?我自己的理解,大白话啊,同步和异步指的是函数调用完成任务的程度。一个任务的完成,包括发起、执行和结果返回三个阶段。   同步(synchronize)调用涵盖了这三个阶段。调用结束之后,任务肯定是有结果的,无论成败。  …

阿里Qwen2-72B大模型已是开源榜的王者,为什么还要推出其他参数模型,被其他模型打榜?

阿里Qwen2-72B大模型已是开源榜的王者,为什么还要推出其他参数模型,被其他模型打榜?6 月 27 日,全球知名的开源平台 Hugging Face 的联合创始人兼首席执行官 Clem 在社交平台激动宣布,阿里 Qwen2-72B 成为了开源模型排行榜的王者。这是一件大好事,说明了我们在大模型领域…

专利范文查询

地址http://epub.cnipa.gov.cn/Advanced方法无需登录 输入关键字,查询。 可下载范文, 格式:pdf范例 查询网址首页查询结果下载作者:mohistH 出处:https://www.cnblogs.com/pandamohist/ 本文版权归作者和博客园共有,谢绝一切形式的转载,否则将追究法律责任。

代码随想录算法训练营第五十天 | 1143.最长公共子序列 392.判断子序列

1143.最长公共子序列 题目链接 文章讲解 视频讲解dp[i][j]: 表示以text1以i-1为结尾text2以j-1为结尾的最长公共子序列为dp[i][j] 递推公式:如果text1[i-1] == text2[j-1] 那么dp[i][j] = dp[i-1][j-1] + 1;如果不相同的话,那么dp[i][j] = max(dp[i-1][j], dp[i][j-1]);class…