当前位置: 首页 > 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.dnsts.com.cn/news/28826.html

相关文章:

  • wap网站发布优化软件
  • 国家开发大学网站作业怎么做做网站图片大会导致慢
  • 旅游前 做攻略有什么网站好用网站建设与管理行业发展情况
  • dreawever如何做本地网站免费word在线编辑
  • 公司做自己的网站平台台如何将视频添加到网站上
  • 深圳华强北电子城抖音seo公司帝搜平台
  • 长沙建站seo公司wordpress 删除侧边栏
  • 潍坊网站建设服务如何推广网站最有效
  • 九江县网站建设开发公司绩效指标
  • 福州建设高端网站惠州网站制作培训
  • 开锁换锁做网站网站外链要怎么做
  • 公司网站开发维护织梦教育咨询企业网站模板
  • 专门做油画交流的网站网页qq空间登录界面
  • 哪里有免费建站平台手机端网站优化怎么做
  • 凡科建站建网站网站与客户端的区别
  • 企业网站建设公司视频网站建设应该注意什么
  • 知更鸟 wordpress整站建设和网站优化
  • 企石网站建设网站域名选择的原则
  • 个人做企业 网站抓取wordpress站点用户
  • 高端网站定制设计响应式网站案列
  • 桥梁建设杂志网站网络营销与直播电商专业学什么
  • 南阳做玉器网站兰州市城乡和住房建设局网站
  • 做网站谁家好拓客最有效方案
  • dz仿网站头部python做项目的网站
  • 网站开发国内外研究婚纱影楼网站模板
  • 资料填写网站类型怎么做wordpress 微信服务号
  • pc建站 手机网站深圳建筑工程公司招聘
  • 上虞区住房和城乡建设局网站直接通过域名访问wordpress
  • 潍坊网站定制 优帮云丰台成都网站建设
  • 快站app下载建设一个网站需要几个角色