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

wordpress仿站之家珠海设计公司排名

wordpress仿站之家,珠海设计公司排名,google网页版,零售网站有哪些平台刷题日记Day2 977 有序数组的平方209. 长度最小的子数组59. 螺旋矩阵 II 977 有序数组的平方 链接:https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组…

刷题日记Day2

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

977 有序数组的平方

链接:https://leetcode.cn/problems/squares-of-a-sorted-array/description/

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

思路:分三种情况
-1. 全正,直接返回原数组平方
-2. 全负,返回原数组平方的逆序
-3. 有正有负
(1)寻找中间点位(绝对值从小变大的起点或者相邻乘积<=0的位置)
(2)左指针为mid-1 ,右指针为mid + 1
(3) 转换为两个有序数组合并问题
(4) 注意点:等其中一个结束后要把未结束的那个剩余的数字全部追加到最后

class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:snums = [num * num for num in nums]if nums[0] >= 0:return snumselif nums[-1] <=0:return list(reversed(snums))mid = 0for i in range(len(nums)-1):if (nums[i] * nums[i+1])<=0:if abs(nums[i]) < nums[i+1]:mid = ielse:mid = i + 1left = mid - 1right = mid + 1ans = [snums[mid]]# print("========")# print(ans)# print("========")while left >=0 and right <= len(nums)-1:if snums[left] < snums[right]:ans.append(snums[left])left -= 1else:ans.append(snums[right])right += 1# print(ans, left ,right)if left == -1:ans.extend(snums[right:])elif right == len(nums):ans.extend(list(reversed(snums[:left+1])))return ans

209. 长度最小的子数组

链接:https://leetcode.cn/problems/minimum-size-subarray-sum/description/

给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

思路:双指针,右指针探路,选择区间内满足条件的,满足后,左指针移动,找到最小满足的,以此类推
难点:边界条件处理

代码实现

class Solution:def minSubArrayLen(self, target: int, nums: List[int]) -> int:left = 0right = 0 length = len(nums)ans = 1e5 +1temp = nums[0]while right < len(nums):if temp < target:right += 1if right != len(nums):temp += nums[right]# print("==", left, right, nums[left:right+1], ans)else: ans = min(ans, right + 1 -left)temp -= nums[left]left += 1      # print("****", left, right, nums[left:right+1], ans)while left <=right and temp >= target:ans = min(ans, right + 1 -left)temp -= nums[left]left += 1          # print("@@@", left, right, nums[left:right+1], ans)if ans == 1e5+1:return 0return ans

59. 螺旋矩阵 II

链接:https://leetcode.cn/problems/spiral-matrix-ii/description/

给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。

思路:模拟,设置上下左右四个方向,注意方向的设置必须按照顺时针,即右-》下-》左-》上循环往复,碰壁则调转方向。
Python代码实现

class Solution:def generateMatrix(self, n: int) -> List[List[int]]:if n == 1:return [[1]]# temp = list(range(1, n*n +1))# print(temp)# ans = [[0]*n] *n   谁这样写谁是笨蛋# print(ans)ans = [[0] * n for _ in range(n)]# print(ans)# 右下左上 顺时针方向direc = [[0,1], [1,0],[0, -1], [-1,0]]row, col, idx = 0, 0, 0for i in range(n * n):ans[row][col] = i + 1dx, dy = direc[idx]r, c = row + dx, col + dyif r< 0 or r>= n or c<0 or c >=n or ans[r][c]>0:# 碰壁了,顺时针旋转方向idx = (idx+1)% 4dx, dy = direc[idx]row, col = row + dx, col +dy# print(ans)return ans
http://www.yayakq.cn/news/837308/

相关文章:

  • 建筑专业网站建设企业官网制作公司
  • 广州企业建站公司雅安建设局网站
  • 群晖搭建企业网站成都中国旅行社金牛三分社
  • 网页设计类网站赤峰市做网站
  • 如何选择个人网站主题贵港市网站建设
  • 北京做网站个人移动互联网开发培训
  • 神马网站排名重庆建筑人才网招聘
  • 网站建设和源代码问题wordpress 搜索记录
  • 网站有源码 怎么建设开网站的是啥公司
  • 做网站必须用域名吗宿迁发布最新通告
  • 网站后台图片传不上去怎么办erp系统页面
  • 青岛网站关键字优化中国污水处理工程网
  • uc官方网站开发者中心建e网室内设计网下载
  • 微网站下载资料怎么做先做网站还是先备案
  • 网站建设的流程步骤运维兼职平台
  • 网站建设方案书填写示例在线制作简历的网站
  • 网站改备案吗网站服务器 数据库服务器
  • 杭州网站建设很棒友情链接在线观看
  • 工信部网站备案要先做网站吗网站建设技术哪些内容
  • 南阳seo网站价格湛江购房网官方网站
  • 网站建设定制开发网站设计开发网站建设和管理制度
  • 做标签网站是什么样的潜江资讯网二手车
  • 免费网站怎么盈利模式做网站是否要备案
  • 优化排名推广教程网站南京微信网站开发
  • 网站建设源代码 费用wordpress 手机端模板
  • 做互联网网站的会抓燕窝网站怎么做的
  • 晋中公司做网站网站教程分享
  • 网站建设 站内页面连接怎样在网上做推广
  • 长春火车站哪个区优设网剪辑教程
  • 网站被降权恢复wordpress二次元源码