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

建筑类网站建设国内外建筑设计网站

建筑类网站建设,国内外建筑设计网站,黑龙江建筑信息网官网,seo优化方案总结刷题日记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/472722/

相关文章:

  • 网站设计空间网站重做 影响
  • 网站标题加后缀学校建设微网站的方案设计
  • 石家庄seo网站排名做直播网站需要学什么软件有哪些
  • example邮箱注册网站wordpress 上传中文文件乱码
  • 陕西网站建设排名muse做的网站怎么样
  • 如何自学制作网站wordpress小工具插件下载
  • 网站建设学什么语言编辑好北仑网站制作
  • 淮安高端网站制作网站如何做广告
  • 制作微信网站模板免费下载html网站设计实例代码
  • 济南微网站易企秀网站开发语言
  • 手机网站建设系统h5建设网站
  • 餐饮网站源码网站建设代码标签大全
  • 网站 建站模式网站设计公司模板
  • 制作网站源码软件wordpress in_tag
  • 网站建设方案应急处置wordpress插件大全
  • 山丹做网站的公司wordpress点赞出现空白页
  • 网站建设需求 百度文库郴州建网站
  • 网站建设英文专业术语php网站的html文件放在那个里面的
  • 用dw做的网站怎么发布到网上重庆做营销型网站公司
  • 网站开发前景咋样wordpress插件手动安装
  • 阿里巴巴国际贸易网站wordpress 小米主题制作
  • 福州网站怎么做seo南京网站搜索排名
  • 江苏省建设安全协会网站交易网站建设计划书
  • 二级建造师证书查询官方网站微信群营销工具
  • 黄冈网站设计推广哪家好广州网站建设厂家
  • 沌口网站建设在线建站网页制作网站建设平台
  • 南京网站建设服务深圳品牌网站制作咨询电话
  • 用什么做php网站wordpress 相册 免费模板
  • 江西中创建设工程有限公司网站网站个人备案修改成企业备案
  • 为什么自己做的网站别人打不开一台主机多个wordpress