首頁>技術>

如果陣列 b 是陣列 a 的一個連續子序列,即如果它等於 a[l],a[l+1],...,a[r] ,那麼它就是 a 的一個子陣列。

示例 1:輸入:nums = [4,2,4,5,6] 輸出:17

解釋:最優子陣列是 [2,4,5,6]

示例 2:輸入:nums = [5,2,1,2,5,2,1,2,5] 輸出:8

解釋:最優子陣列是 [5,2,1] 或 [1,2,5]

提示:1 <= nums.length <= 105

1 <= nums[i] <= 104

解題思路分析

1、滑動視窗;時間複雜度O(n),空間複雜度O(n)

func maximumUniqueSubarray(nums []int) int {	res := 0	sum := 0	m := make(map[int]int)	left := 0	for i := 0; i < len(nums); i++ {		m[nums[i]]++		sum = sum + nums[i]		for m[nums[i]] > 1 {			m[nums[left]]--			sum = sum - nums[left]			left++		}		if sum > res {			res = sum		}	}	return res}
總結

Medium題目,本質上就算求不重複陣列的最大和

16
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 2021了,該試試Gradle組織專案啦