- 这段时间主要做DP的题目
- 以后做题的目标,做一道会一道,举一反三。
#include
#include
using namespace std;
class RangeSumQueryImmutable
{
public:
RangeSumQueryImmutable(vector &num)
{
dp = num;
for (int i = 1; i < num.size(); i++)
{
dp[i] = dp[i - 1] + dp[i];
}
}
int sumRange(int i, int j)
{
return i == 0 ? dp[j] : dp[j] - dp[i - 1];
}
private:
vector dp;
};
int maxT(int a, int b)
{
if (a > b)
{
return a;
}
return b;
}
int RobberHouse(vector vec)
{
vector dp(vec.size(), 0);
dp[0] = vec[0];
dp[1] = maxT(vec[0], vec[1]);
for (int i = 2; i < vec.size(); i++)
{
dp[i] = maxT(vec[i] + dp[i - 2], dp[i - 1]);
}
return dp.back();
}
int main()
{
vector vec{ -2,0,3,-5,2,-1 };
RangeSumQueryImmutable R(vec);
cout << R.sumRange(0, 2) << endl;
cout << R.sumRange(2,5) << endl;
cout << R.sumRange(0, 5) << endl;
cout << RobberHouse({2,7,9,3,1}) << endl;
system(“pause”);
return 0;
}
[LeetCode] Range Sum Query - Immutable 区域和检索 - 不可变
