今天的第一题~
给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组:
选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。
重复这个过程恰好 k 次。可以多次选择同一个下标 i 。
以这种方式修改数组后,返回数组 可能的最大和 。
这道题是真的简单,想要达成最大和的目标就盯着数组中最小值下手就行了,怎么找最小值呢?当然是min方法啦,下面是代码
贪,什么都可以贪心
class Solution(object):
def largestSumAfterKNegations(self, nums, k):
for i in range(k):
mins = nums.index(min(nums))
nums[mins] = -nums[mins]
return sum(nums)
第二题~
给你一个数字数组 arr 。
如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。
如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。
这道题其实没有难度,唯一的问题就是我最后提交不通过,然后发现要用布尔类型提交……上代码!
class Solution(object):
def canMakeArithmeticProgression(self, arr):
arr.sort()
judge = 1
for i in range(len(arr)):
try:
if arr[i] - arr[i+1] == arr[i+1] -arr[i+2]:
continue
else:
judge = 0
break
except:
break
return bool(judge)