标签:inf 自动 div 为我 object src com 情况 通过率
这道题为简单题,但是做的过程中忽略了一些特殊情况,最后还是做出来了,怪说不得这道题的通过率才21%左右
我设置了两个变量,prev代表上一个元素,prev_prev代表上上个元素,代码的大致思路就是如果有两次(因为我把两个值设置为无穷小,所以第一次num就是自动加1,但是这一次不算)该元素比上一个prev小,那么就返回False,否则True,在这个过程中最难的就是第一次出现的时候如何改变prev和prev_prev的值。如果上上个元素小于i,那么就把上个和上上个元素都变为i,prev_prev == float(‘Inf’) 这个条件是由于当时没考虑到长度小于3时才加的,其他情况就把上个和上上个元素都变为i元素的上个元素值
class Solution(object): def checkPossibility(self, nums): """ :type nums: List[int] :rtype: bool """ prev_prev = float(‘inf‘) prev = float(‘inf‘) num = 0 for i in nums: if i < prev: num += 1 if num == 1: prev = i else: prev_prev = prev prev = i if num == 2: if prev_prev == float(‘inf‘) or prev_prev <= i: prev_prev = i prev = i else: prev_prev = prev if num == 3: return False return True
标签:inf 自动 div 为我 object src com 情况 通过率
原文地址:http://www.cnblogs.com/liuxinzhi/p/7538426.html