# Leetcode 413. Arithmetic Slices ###### tags: `Leetcode(C++)` 題目 : https://leetcode.com/problems/arithmetic-slices/ 。 想法 : 找最長Arithmetic Subarray的尾巴在哪裡,找到就計算其可能組合並直接把開頭往後跳。 時間複雜度 : O(n)。 程式碼 : ``` class Solution { public: int numberOfArithmeticSlices(vector<int>& nums) { int l=nums.size(), bk, sum=0; for(int i=0 ; i<l-2 ; i++){ if(nums[i+1] - nums[i] == nums[i+2] - nums[i+1]){ bk=i+2; while(nums[bk] - nums[bk-1] == nums[i+1] - nums[i]){ bk++; if(bk == l){ break; } } bk--; //cout << i << " " << bk << endl; int total=bk-i+1; for(int j=1 ; j<=total-2 ; j++){ sum+=j; } i=bk-1; } } return sum; } }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up