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

做网站个人怎么赚钱吗天津武清做网站tjniu

做网站个人怎么赚钱吗,天津武清做网站tjniu,成都网站建设爱特通,wordpress 统计浏览文章目录 python语法记录 sort格式 1005.K次取反后最大化的数组和思路方法一方法二 按照绝对值排序 教程🎈✨ 背住 按照绝对值进行降序排序的语法是: 134. 加油站思路方法一 教程解法方法二 暴力求解 135. 分发糖果思路方法一 总结 python语法记录 sort …

文章目录

  • python语法记录 sort
    • 格式
  • 1005.K次取反后最大化的数组和
    • 思路
    • 方法一
    • 方法二 按照绝对值排序 教程
            • 🎈✨ 背住 按照绝对值进行降序排序的语法是:
  • 134. 加油站
    • 思路
    • 方法一 教程解法
    • 方法二 暴力求解
  • 135. 分发糖果
    • 思路
    • 方法一
  • 总结


python语法记录 sort

link

格式

列表为A
A.sort(cmp, key, reverse)A = sorted(A, cmp, key, reverse)是等价的

  • 其中cmp表示排序时进行比较的函数【一般不用,是高级用法的范畴,自定义函数】
  • key为函数,指定取待排序元素的哪一项进行排序。可以指定一个函数或者lambda函数
    • 例如key = lambda x: x[ 2 ] 就表示用A的元素的第二个内容进行排序
      在这里插入图片描述
    • 例如key = lambda x : abs(s)就表示用A中的元素的abs进行排序
  • reverse表示是按照正序还是反序
    补充:
  1. 多级排序:先照着第三个元素内容排序,再是第二个

1005.K次取反后最大化的数组和

在这里插入图片描述

思路

这题很简单的,但是我没有想出来,可能今天过于焦虑紧张了
总体思路:两步贪心,先给nums sort一下【🎈✨按照绝对值进行排序

  1. 对于负数全部进行取反
  2. 如果多到k,对于全是非负数的nums里面的最小值进行取反(如果k为奇数,因为偶数情况相当于没变)

方法一

下面是自己写的,但是两次sort,因为没有按照绝对值进行排序降序

class Solution(object):def largestSumAfterKNegations(self, nums, k):""":type nums: List[int]:type k: int:rtype: int"""nums = sorted(nums)for i in range(0,len(nums)-1):if nums[i] < 0 and k > 0:k -= 1nums[i] = -nums[i]elif nums[i] >= 0: breaknums = sorted(nums)#再排序一次if k%2 == 1: nums[0] = -nums[0]return sum(nums)

方法二 按照绝对值排序 教程

🎈✨ 背住 按照绝对值进行降序排序的语法是:

sorted(nums, key=lambda x: abs(x), reverse=True) 或者nums.sort( key=lambda x: abs(x), reverse=True)

class Solution(object):def largestSumAfterKNegations(self, nums,K):""":type nums: List[int]:type k: int:rtype: int"""A = sorted(nums, key=lambda x: abs(x), reverse=True)  # 第一步:按照绝对值降序排序数组Afor i in range(len(A)):  # 第二步:执行K次取反操作if A[i] < 0 and K > 0:A[i] *= -1K -= 1if K % 2 == 1:  # 第三步:如果K还有剩余次数,将绝对值最小的元素取反A[-1] *= -1result = sum(A)  # 第四步:计算数组A的元素和return result

134. 加油站

在这里插入图片描述

思路

因为题目说了有唯一解,所以可以使用暴力求解的方法
贪心算法(方法二):方法一就不用看了
总体思路:每个加油站gas[i]-cost[i]都有剩余量,如果从起始位置累加剩余量小于0的话,说明那一天不行,断油了,从i+1开始作为起始位置,再来绕圈累加;
在这里插入图片描述
为什么是从i+1开始,有没有可能在预先定义的起始位置和i之间有一个合适的呢?教程方法二后段也给出了解释

方法一 教程解法

重新做,我没咋记住

class Solution(object):def canCompleteCircuit(self, gas, cost):""":type gas: List[int]:type cost: List[int]:rtype: int"""if sum(gas) < sum(cost): return -1start = 0res = 0for i in range(0,len(cost)):res += gas[i] - cost[i]if res < 0 :start = i+1res = 0return start

方法二 暴力求解

就是将每个为起始位置的都遍历一遍,看看中间是否会有断油的情况
trick💘
循环index的写法:index = (i + 1) % len(cost)
下面的写法超时了

class Solution(object):def canCompleteCircuit(self, gas, cost):""":type gas: List[int]:type cost: List[int]:rtype: int"""for i in range(len(cost)):res = gas[i] - cost[i]# 起始点的剩余量next_index = (i+1) % len(gas)while res > 0 and next_index != i:#如果没有断油,并且没有回到起始点res += gas[next_index] - cost[next_index]next_index = (next_index+1) % len(gas)      if res >= 0 and next_index == i:return ireturn -1

135. 分发糖果

在这里插入图片描述

思路

这道题目一定是要确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右边,如果两边一起考虑一定会顾此失彼
首先保证右边的孩子大于左边孩子的情况:从前往后遍历
左边的孩子大于右边的孩子的情况:从后往前遍历【为什么不能从后往前遍历看教程】
具体操作:注意第二个情况需要将第一个情况包含进去,取一个max

方法一

class Solution(object):def candy(self, ratings):""":type ratings: List[int]:rtype: int"""candy = [1] * len(ratings)for i in range(1,len(ratings)):if ratings[i] > ratings[i-1]:candy[i] = candy[i-1] + 1for i in range(len(ratings)-2,-1,-1):if ratings[i] > ratings[i+1]:candy[i] = max(candy[i],candy[i+1]+1)return sum(candy)

总结

http://www.yayakq.cn/news/62913/

相关文章:

  • 为什么大公司开发网站企业宣传网站怎么做
  • 网站代码素材建设青岛网页设计学校
  • 推荐一个好点的网站济南网站seo技术
  • 社交网站做强宝安建设网站公司
  • 百度如何把网站做链接地址网站支付宝怎么做的
  • 商务网站建设包含了有什么网站可以做试题
  • 新昌网站建设网站空间怎么选择
  • 如何做好营销型网站建设重庆建设摩托车价格
  • 网站维护的方法升级wordpress5.0无法发布文章
  • 站群网站程序网站建设预付
  • 安全狗iis版删了以后 网站打不开秋林 做网站
  • 查询网站建设在线购物网站的设计与实现
  • 怎么做网站中英文版本通江县网站建设
  • 做视频网站带宽中企动力洛阳分公司
  • 吧网站做软件的软件浙江温州乐清
  • 织梦网站怎样入侵做网站的服务器还需要空间吗
  • 网站内容体系网站备案主体黑名单
  • 最简单的网站开发软件程序开发是什么专业
  • 网站的基本组成部分有哪些内容北京网站建设小程序开发
  • 女生学网站建设好学吗wordpress快速清除本地图片
  • 北京规划建设 杂志 官方网站天津网站优化排名
  • 网站开发常用的流程建设厅网站进不去
  • cgi做的网站哈尔滨专门做网站
  • 做网站怎样赚到钱怎么做网站出肉狗
  • 个体工商户注册网站微信app下载安卓版官方下载
  • 邢台专业网站建设公司推荐手机模板素材图片
  • 网站建设代理网站杭州品牌网站建设推广
  • 成都网站建设找重庆最佳科技wordpress如何抓取
  • 网站建设在哪能看网站页面分析范文
  • 在线课程网站开发的研究意义短视频运营公司网站建设