| 1234567891011121314151617181920212223242526272829 | package main// func maxInt(x, y int) int {// 	if x > y {// 		return x// 	}// 	return y// }// DP? try to understandfunc rob(nums []int) int {	odd, even := 0, 0	for i := 0; i < len(nums); i++ {		// if idx is odd		if i&1 == 1 {			// rob this store (+nums[i]), or not (even)			odd = maxInt(odd+nums[i], even)		} else {			// rob this store (+nums[i]), or not (odd)			even = maxInt(even+nums[i], odd)		}	}	return maxInt(odd, even)}// func main() {// 	arr := []int{1, 2, 435, 6543, 31, 43, 543, 21, 532}// 	fmt.Println(rob(arr))// }
 |