问题描述:
代码:力扣
class Solution {
public static int numberOfArithmeticSlices(int[] nums) {
int n=nums.length;
if(n<3) return 0;
int[] dp=new int[n];
int ans=0;
for(int i=2;i<n;i++){
if(nums[i]-nums[i-1]==nums[i-1]-nums[i-2]){
dp[i]=dp[i-1]+1;
ans+=dp[i];
}
}
return ans;
}
}
思路:
问题描述:
代码:
class Solution {
public int numDecodings(String s) {
int n = s.length();
// a = f[i-2], b = f[i-1], c=f[i]
int a = 0, b = 1, c = 0;
for (int i = 1; i <= n; ++i) {
c = 0;
if (s.charAt(i - 1) != '0') {
c += b;
}
if (i > 1 && s.charAt(i - 2) != '0' && ((s.charAt(i - 2) - '0') * 10 + (s.charAt(i - 1) - '0') <= 26)) {
c += a;
}
a = b;
b = c;
}
return c;
}
}
思路: