码迷,mamicode.com
首页 > 其他好文 > 详细

Non-decreasing Array

时间:2017-09-17 23:34:39      阅读:227      评论:0      收藏:0      [点我收藏+]

标签: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

 

    

Non-decreasing Array

标签:inf   自动   div   为我   object   src   com   情况   通过率   

原文地址:http://www.cnblogs.com/liuxinzhi/p/7538426.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!