代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结

977. 有序数组的平方

简单
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
示例 1:
输入:nums = [-4,-1,0,3,10]
输出:[0,1,9,16,100]
解释:平方后,数组变为 [16,1,0,9,100]
排序后,数组变为 [0,1,9,16,100]
示例 2:
输入:nums = [-7,-3,2,3,11]
输出:[4,9,9,49,121]
提示:

1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums 已按 非递减顺序 排序
进阶:
请你设计时间复杂度为 O(n) 的算法解决本问题

代码

package __arrayimport "sort"func sortedSquares(nums []int) []int {n := len(nums)res := make([]int, 0)//判断需不需要分成两个数组,进行比较//拆数组,两个数组比较头l, r := 0, n-1zero := sort.SearchInts(nums, 0)l = zero - 1if zero < n && nums[zero] == 0 {r = zero + 1res = append(res, 0)} else {r = zero}for l >= 0 && r < n {if nums[l]*nums[l] > nums[r]*nums[r] {res = append(res, nums[r]*nums[r])r++} else {res = append(res, nums[l]*nums[l])l--}}for l >= 0 {res = append(res, nums[l]*nums[l])l--}for r < n {res = append(res, nums[r]*nums[r])r++}return res
}

209. 长度最小的子数组

中等
给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。
示例 1:
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

示例 2:
输入:target = 4, nums = [1,4,4]
输出:1

示例 3:
输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0
提示:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105

进阶:
如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。

代码

func minSubArrayLen(target int, nums []int) int {n := len(nums)/*滑动窗口*/sum, res := nums[0], math.MaxInt32l, r := 0, 0for r < n {for sum >= target {res = minSubArrayLen_min(res, r-l+1)sum -= nums[l]l++}r++if r < n {sum += nums[r]}}if res==math.MaxInt32{return 0}return res
}func minSubArrayLen_min(i int, i2 int) int {if i < i2 {return i} else {return i2}
}

59.螺旋矩阵 II

中等
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1:
输入:n = 3
输出:[[1,2,3],[8,9,4],[7,6,5]]

示例 2:
输入:n = 1
输出:[[1]]

提示:
1 <= n <= 20

代码

package __arrayfunc generateMatrix(n int) [][]int {cnt := 1res := make([][]int, n)for i := 0; i < n; i++ {res[i] = make([]int, n)}for i := 0; i < n; i++ {for j := i; j < n-i; j++ {res[i][j] = cntcnt++}for j := i + 1; j < n-i; j++ {res[j][n-1-i] = cntcnt++}for j := n - 2 - i; j >= i; j-- {res[n-1-i][j] = cntcnt++}for j := n - 2 - i; j > i; j-- {res[j][i] = cntcnt++}}return res
}

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

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

相关文章

2311d模板替换运行时勾挂

原文 本周我完成了把_d_newarray{mTX,miTX,OpT}转换为单个模板的工作,并合并了PR这里. 它们分配并初化多维数组.与_d_newarray{U,T,iT}类似,_d_newaraym*现在由单个勾挂实现:_d_newarraymTX. 以前,用两个勾挂来区分默认初化和零初化类型._d_newarrayOpT是两个_d_newarraym{i,}T…

下载node-sass

先卸载node-sass npm uninstall node-sass重新下载node-sass,设置变量 sass_binary_site&#xff0c;指向淘宝镜像地址 npm i node-sass --sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass/

面试笔记:你在开发中遇到过什么问题

持续更新~ java后端 mysql时差相差八小时。 tomcat的session有效时间只有两个小时。 tomcat的默认文件上传大小不大于1MB。 下载文件时文件名有特殊字符&#xff08;URL不支持的字符&#xff0c;空格&#xff0c;下划线等&#xff09;&#xff0c;文件名变成了请求地址的路…

外贸网站被谷歌收录的方法

在当今的数字化时代&#xff0c;拥有一个在线存在是任何企业或个人成功的关键。一个有效的网站不仅可以提供信息&#xff0c;还可以作为吸引潜在客户的强大工具。然而&#xff0c;如果网站没有被搜索引擎&#xff0c;如谷歌收录&#xff0c;那么它的价值将大打折扣。以下是一些…

含免费次数的常用API接口

银行卡三要素&#xff1a;检测输入的姓名、身份证号码、银行卡号是否一致。毫秒级响应、直联保障&#xff0c;支持全国所有银联卡 。运营商三要素 API&#xff1a;输入姓名、身份证号码、手机号码&#xff0c;验证此三种信息是否一致&#xff0c;返回验证结果、手机归属地、运营…

Python算法——树的镜像

Python中的树的镜像算法详解 树的镜像是指将树的每个节点的左右子树交换&#xff0c;得到一棵新的树。在本文中&#xff0c;我们将深入讨论如何实现树的镜像算法&#xff0c;提供Python代码实现&#xff0c;并详细说明算法的原理和步骤。 树的镜像算法 树的镜像可以通过递归…

hive数据库delete删除部分数据/删除分区内的数据

Hive delete 删除部分数据 一、hive删除数据1.1、删除整个表1.2、删除表中的特定行1.3、删除表中的特定分区1.4、删除分区内的部分数据1.5、清空表中的所有数据 二、扩展2.1、dynamic partition on Crud si not disabled, please set hive.crud.dynamic.partitiontrue to enabl…

音视频技术在手机上的应用与挑战

// 编者按&#xff1a;随着手机相机功能日益强大&#xff0c;4k&#xff0c;8k&#xff0c;各类特色短视频的拍摄&#xff0c;编辑、播放需求日益增长&#xff0c;短视频应用的火爆也对当前的手机音视频技术提出了更高的要求&#xff0c;如何更好地提高用户体验成为了行业共同…

蓝桥杯 大小写转换

islower/isupper函数 islower和issupper是C标准库中的字符分类函数&#xff0c;用于检查一个字符是否为小写字母或大写字母 需要头文件< cctype>,也可用万能头包含 函数的返回值为bool类型 char ch1A; char ch2b; //使用islower函数判断字符是否为小写字母 if(islower(…

SpringMVC 进阶

SpringMVC 进阶 一、拦截器 SpringMVC 中 Interceptor 拦截器的主要作⽤是拦截⽤⼾的请求并进⾏相应的处理。⽐如通过它来进⾏权限验证&#xff0c;或者是来判断⽤⼾是否登陆等操作。对于 SpringMVC 拦截器的定义⽅式有两种&#xff1a; 实现接⼝&#xff1a;org.springfram…

如何在3DMax中使用超过16个材质ID通道?

3DMAX效果通道扩展插件EffectsChannelEx教程 3DMax的材质ID通道允许我们生成渲染元素&#xff0c;这些元素可用于在合成或其他软件中产生处理或特殊效果。如对渲染或动画进行颜色校正。你可以在Photoshop中为你的静态3D渲染图像做这件事。或者使用After Effects、Blackmagic Fu…

git pull 报错 error object file is empty , The remote end hung up unexpectedly

报错原因分析&#xff1a;git pull的时候服务器在重启&#xff0c;导致git文件损坏 方法来源&#xff1a; 解决git错误: error object file is empty , The remote end hung up unexpectedly-CSDN博客 亲测有效 find .git/objects/ -type f -empty | xargs rm git fetch -p…

做外贸这么久,为什么一直做不好?

很多外贸业务员在开发客户过程中&#xff0c;总感觉自己做了很多事情&#xff0c;聊了很多客户&#xff0c;但却总是拿不到单子。 其实&#xff0c;这是由于缺乏对采购商心理的认识程度&#xff0c;没有换位思考&#xff0c;该做的事没做&#xff0c;不该做的事却忙得忘乎所以&…

day60

choice参数 1.引入 以一张信息表为例 性别 学历 工作经验 是否婚配 是否生子 客户来源 ... 针对某个可以列举完全的可能性字段&#xff0c;我们应该如何存储 只要某个字段的可能性时列举完全的&#xff0c;那么一般情况下都会采用choice参数 2.数据准备 from random imp…

vue EpicEditor 和Vue-quill-editor详细使用说明

EpicEditor和Vue-quill-editor都是基于Quill.js的富文本编辑器&#xff0c;并且都提供了许多强大的功能。它们的主要区别在于配置选项和工具栏选项。 EpicEditor的配置选项中&#xff0c;theme对象定义了主题颜色、次级颜色、三级颜色等&#xff0c;而editor.modules.toolbar数…

SELinux零知识学习二十一、SELinux策略语言之类型强制(6)

接前一篇文章&#xff1a;SELinux零知识学习二十、SELinux策略语言之类型强制&#xff08;5&#xff09; 二、SELinux策略语言之类型强制 3. 访问向量规则 AV规则就是按照对客体类别的访问许可指定具体含义的规则&#xff0c;SELinux策略语言目前支持四类AV规则&#xff1a; …

Linux 启动停止重启jar包shell脚本

#!/bin/bash# 设置JAR包的路径 JAR_PATH"/deploy/simple/simple.jar"# 设置Java虚拟机参数 JAVA_OPTS"-Xmx512m -Xms256m"start() {# 日志文件存放位置LOG_PATH"/deploy/simple/simple.log"echo "Starting the application..."nohup j…

鸿蒙常用三方库地址一览

记录下三方库列表,以后需要的时候方便查找: tpc_resource: 三方组件资源汇总

竞赛选题 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …

Android13 adb 无法连接?

Android13 adb 无法连接? 文章目录 Android13 adb 无法连接?一、前言二、替换adbGoogle 官网对adb的介绍&#xff1a;Google 提供的adb tools的下载&#xff1a; 三、总结1、adb connect 连接后显示offline2、输入adb devices 报错&#xff1a;版本不匹配导致3、adb常用命令4…