力扣86双周:
第一题:https://leetcode.cn/problems/strictly-palindromic-number/
按题意模拟转换进制数,再对它们进行检验。
class Solution {
public:
string trans(int n,int k){
string res="";
while(n){
int tmp=n%k;
n/=2;
res+=tmp+'0';
}
return res;
}
bool check(string s)
{
string test=s;
reverse(test.begin(),test.end());
if(test==s)return true;
return false;
}
bool isStrictlyPalindromic(int n) {
for(int i=2;i<=n-2;i++){
string tmp=trans(n,i);
if(!check(tmp))return false;
}
return true;
}
};
力扣309周赛:
第二题:https://leetcode.cn/problems/number-of-ways-to-reach-a-position-after-exactly-k-steps/
动态规划,对起始和结束位置进行预处理。
class Solution {
public:
long dp[1005][3020];
const int MOD = 1e9 + 7;
int numberOfWays(int startPos, int endPos, int k) {
memset(dp, 0, sizeof(dp));
startPos += 1000;
endPos += 1000;
dp[0][startPos] = 1;
for (int i = 1; i <= k; i++) {
for (int j = 1; j < 3019; j++) {
dp[i][j] = (dp[i - 1][j - 1] + dp[i - 1][j + 1]) % MOD;
}
}
return dp[k][endPos];
}
};