Leetcode Array101 Max Consecutive Ones by Go

손진성·2022년 2월 10일
0

My code

func findMaxConsecutiveOnes(nums []int) int {
	count := 0
	max := 0
	bnum := 1
	for index := range nums {
		if bnum == 1 {
			if nums[index] == 1 {
				count++
				bnum = 1
			} else {
				bnum = 0
			}
		} else {
			count = 0
			if nums[index] == 1 {
				count++
				bnum = 1
			}
		}
		if max < count {
			max = count
		}

	}
	return max
}

sample 24 ms submission

func findMaxConsecutiveOnes(nums []int) int {
    var (
        maxOnes,
        currentOnes int
    )
    
    for _, val := range nums {
        if val == 1 {
            currentOnes += 1
            if currentOnes > maxOnes {
                maxOnes = currentOnes
            }
        } else {
            currentOnes = 0
        }
    }
    return maxOnes
}
  • Really simple and clear code!

sample 6500 KB submission

func findMaxConsecutiveOnes(nums []int) int {
    for idx := 1; idx < len(nums); idx += 1 {
        if idx == 1 {
            if nums[1] > 0 {
                nums[1] += nums[0]
                if nums[1] > 0 {
                    nums[0] = nums[1]
                }
            }
            continue
        }
        if nums[idx] > 0 {
            nums[1] += 1
            if nums[1] > nums[0] {
                nums[0] +=1
            }
        } else {
            nums[1] = 0
            continue
        }
        
    }

    return nums[0]
}
profile
Gopyther

0개의 댓글