工作日,又到新的一周了,来,今天和车神哥一起来提升自己的Python编程和面试能力吧,刷天梯~
以下为我的天梯积分规则:
每日至少一题:一题积分+10分
若多做了一题,则当日积分+20分(+10+10)
若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60)
初始分为100分
若差一天没做题,则扣积分-10分(周六、周日除外注:休息)
坚持!!!
初级算法
刷题目录
数组
题干
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。
示例1:
输入: [1,2,3,1]
输出: true
示例2:
输入: [1,2,3,4]
输出: false
示例3:
输入: [1,1,1,3,3,4,3,2,4,2]
输出: true
分析:
从题干上看,其实很简单,有相同则返回true,反之,则false
直接上代码:
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: n = len(nums) nums.sort() for i in range(n-1): if nums[i] == nums[i+1]: return True return False
从内存消耗上看,还不错,但是好像大家的代码都差不多。
怎么可能就写一种,然后我又写了一个较为复杂一点的:
基本思想也差不多,就先将无序数组按照从小到大排序,然后再判断相邻数直接有无相同,若有,则返回true,反之,false.
class Solution: def containsDuplicate(self, nums: List[int]) -> bool: n = len(nums) # 先对数组进行排序 s_n = nums.sort() su1 = 0 su2 = 1 for i in range(n-1, 0, -1): if nums[i] == nums[i-1]: su1 += 1 else: su2 += 1 if su2 != n: return True else: return False