力扣题目汇总(单调数列,两个数组的交集Ⅱ,学生出勤记录Ⅰ)
程序员文章站
2022-06-22 12:43:22
力扣题目汇总(单调数列,两个数组的交集Ⅱ,学生出勤记录Ⅰ) "单调数列" 1.题目描述 1. 如果数组是单调递增或单调递减的,那么它是 单调的 。 如果对于所有 ,那么数组 是单调递减的。 当给定的数组 是单调数组时返回 ,否则返回 。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 提 ......
力扣题目汇总(单调数列,两个数组的交集ⅱ,学生出勤记录ⅰ)
1.题目描述
-
如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有
i <= j
,a[i] <= a[j]
,那么数组a
是单调递增的。 如果对于所有i <= j
,a[i]> = a[j]
,那么数组a
是单调递减的。当给定的数组
a
是单调数组时返回true
,否则返回false
。示例 1:
输入:[1,2,2,3] 输出:true
示例 2:
输入:[6,5,4,4] 输出:true
示例 3:
输入:[1,3,2] 输出:false
示例 4:
输入:[1,2,4,5] 输出:true
示例 5:
输入:[1,1,1] 输出:true
提示:
1 <= a.length <= 50000
-100000 <= a[i] <= 100000
2.解题思路
#解题思路: 排序list有内置函数sort,不过sort他默认是递增,这里我们可以对要验证的列表进行切片旋转
3.解题
class solution: def ismonotonic(self, a: list[int]) -> bool: import copy a_2 = copy.deepcopy(a) a_2.sort() if a_2 == a or a_2 == a[::-1]: return true else: return false
两个数组的交集 ii
1.题目描述
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2,2]
示例 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出: [4,9]
说明:
- 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
- 我们可以不考虑输出结果的顺序。
进阶:
- 如果给定的数组已经排好序呢?你将如何优化你的算法?
- 如果 nums1 的大小比 nums2 小很多,哪种方法更优?
- 如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
2.解题思路
根据题意走没什么特别的思路
3.解题
class solution: def intersect(self, nums1: list[int], nums2: list[int]) -> list[int]: new_list = [] if len(nums1) <len(nums2): for a in nums1: if a in nums2: new_list.append(a) nums2.remove(a) else: for a in nums2: if a in nums1: new_list.append(a) nums1.remove(a) return new_list
学生出勤记录 i
1题目描述
给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符:
- 'a' : absent,缺勤
- 'l' : late,迟到
- 'p' : present,到场
如果一个学生的出勤记录中不超过一个'a'(缺勤)并且不超过两个连续的'l'(迟到),那么这个学生会被奖赏。
你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:
输入: "ppallp" 输出: true
示例 2:
输入: "ppalll" 输出: false
2.解题思路
#a大于1肯定没有奖励 #a小于1有l超过连续两次为没有奖励 #其他情况均为有奖励
3.解题
class solution: def checkrecord(self, s: str) -> bool: s_dict = dict() if s.count('a') > 1: return false else: for a in range(2,len(s)) : if s[a]==s[a-1]==s[a-2]: if s[a] not in s_dict: s_dict[s[a]] = 1 if s_dict.get('l')== 1: break if s_dict.get('l',0) == 1: return false else: return true
`有更加好的思路,或者解题方法评论区留言谢谢
下一篇: jQuery查找节点(选择器)