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

美篇在哪个网站做的天推广人的网站

美篇在哪个网站做的,天推广人的网站,服务商平台登陆,青海西宁网站建设公司#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解题方法一 三、解题方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share:…#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解题方法一 三、解题方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享一篇有观点和思考的技术文章 希望通过此次活动能聚集一波热爱技术的人延续好奇、探索、实践、分享的精神。   一、题目 给你一个长度为 n 的整数数组 nums 请你判断在 最多 改变 1 个元素的情况下该数组能否变成一个非递减数列。 我们是这样定义一个非递减数列的 对于数组中任意的 i (0 i n-2)总满足 nums[i] nums[i 1]。 示例 1: 输入: nums [4,2,3] 输出: true 解释: 你可以通过把第一个 4 变成 1 来使得它成为一个非递减数列。 示例 2: 输入: nums [4,2,1] 输出: false 解释: 你不能在只改变一个元素的情况下将其变为非递减数列。 二、解题方法一 def checkPossibility(nums):for i in range(len(nums) - 1):if nums[i] nums[i 1]:# 如果当前元素比下一个元素大则需要将当前元素减小或将下一个元素增大# 为了只改变一个元素我们可以将当前元素减小到比下一个元素小的最小值# 或者将下一个元素增大到比当前元素大的最小值# 因此我们只需要找到这两个数中的最小值即可return min(nums[i], nums[i 1]) max(nums[i], nums[i 1])# 如果所有元素都满足非递减的条件则返回 Truereturn True这段代码实现了一个函数 checkPossibility,用于判断在最多改变 1 个元素的情况下给定的整数数组是否能变成一个非递减数列。 函数的输入参数为一个整数数组 nums。 首先我们使用一个循环遍历数组中的每个元素 i,并检查当前元素 nums[i] 是否比下一个元素 nums[i 1] 大。如果是则说明当前元素需要被修改以使得整个数组能够变成非递减数列。 为了只改变一个元素我们可以将当前元素 nums[i] 减小到比下一个元素 nums[i 1] 小的最小值或者将下一个元素 nums[i 1] 增大到比当前元素 nums[i] 大的最小值。因此我们只需要找到这两个数中的最小值即可。 具体来说我们可以使用 Python 内置函数 min() 来找到两个数中的最小值。如果这个最小值小于等于另一个数则说明它们可以相等即不需要进行任何操作否则我们需要将较小的那个数减小到等于较大的那个数。 最后如果所有元素都满足非递减的条件则返回 True;否则返回 False。 三、解题方法二 另一种解决方法是使用双指针法。具体来说我们可以定义两个指针 left 和 right,分别指向数组的开头和结尾。然后我们从左到右遍历数组中的每个元素并检查当前元素是否小于等于右边的元素。如果是则说明当前元素需要被修改以使得整个数组能够变成非递减数列。 为了只改变一个元素我们可以将当前元素 nums[i] 减小到比右边的元素 nums[j] 小的最小值或者将右边的元素 nums[j] 增大到比当前元素 nums[i] 大的最小值。因此我们只需要找到这两个数中的最小值即可。 具体来说我们可以使用双指针法来实现这个算法。首先我们将 left 指针指向数组的第一个元素将 right 指针指向数组的最后一个元素。然后我们从左到右遍历数组中的每个元素 i,并检查当前元素是否小于等于右边的元素 nums[j]。如果是则说明当前元素需要被修改我们需要移动 left 指针到下一个位置并更新左边的最小值否则我们需要移动 right 指针到前一个位置并更新右边的最小值。最后如果所有元素都满足非递减的条件则返回 True;否则返回 False。 这个算法的时间复杂度为 O(n),其中 n 为数组的长度。 def checkPossibility(nums):left, right 0, len(nums) - 1for i in range(len(nums)):while left right and nums[left] nums[i]:# 如果左边的元素比当前元素大则将左边的指针向右移动一位left 1while left right and nums[right] nums[i]:# 如果右边的元素比当前元素小则将右边的指针向左移动一位right - 1if left right:# 如果左边的指针已经到达了数组的末尾说明无法通过修改元素使得整个数组变成非递减数列return False# 将当前元素修改为左边和右边中的最小值以满足非递减的条件nums[i] min(nums[left], nums[right])return True
http://www.pierceye.com/news/615383/

相关文章:

  • 通付盾 建设网站公司最新永久地域自动跳转
  • 宁波建网站选哪家好一点wordpress手机全部显示
  • 如何注册属于自己的网站做列表的网站
  • 网站公司seo杭州网站建设模板
  • 网站内链如何布局优化大师下载
  • 如何做网站需求表格清单电影购买网站怎么设计
  • 有口碑的常州网站建设家政公司网站建设方案
  • 用户体验设计师吉林网站seo
  • 便宜营销型网站建设优化建站多网站绑定域名
  • 什么网站教人做3d效果图网站建设电话销售不被挂断
  • 村级网站建设 不断增强免费logo设计图案创意
  • 做网站优化有什么途径什么类型的公司需要做建设网站的
  • 计算机毕设代做网站深圳自适应网站开发
  • 万网主机建设网站流程idc 网站备案
  • 收费用的网站怎么做珠海网站关键词推广
  • 学技巧网站制作网站建设税率多少
  • 高端网站设计平台网页设计模板的网站
  • 万网云服务器网站上线网站开发开票税率
  • 西安高端网站制作公司网站开发需要哪些知识
  • 不错的网站建设公网站建设产品展示型的
  • 泰安住房和城乡建设局网站东莞网站推广哪家好信息
  • 个人网站制作的选题意义简短干净三字公司起名
  • 网站卡密代理怎么做网站建设有关表格
  • 易语言可以做网站么永久免费linux云主机
  • 什么网站可以免费做视频软件网站广告推广价格
  • 网站建设手机软件黄页88收费吗
  • 郑州网站建设多少钱wordpress分享获得积分
  • 贵阳网站设计模板建设工程监理招标网站
  • 上海专业的网页设计公司百度推广优化怎么做的
  • 河南城乡建设厅网站wordpress 主题 字体