04 2021 档案

摘要:map映射一下就好了 class Solution { public: // const int maxn = 30010; int vis[30010]; map<int, int> M; int singleNumber(vector<int>& nums) { int n = nums.siz 阅读全文
posted @ 2021-04-30 16:33 WTSRUVF 阅读(57) 评论(0) 推荐(0)
摘要:因为数据太大,但数据量少,因此可以用map先建立映射关系 再用二维set,其中set[i]表示第i个石块所能跳的距离数组 二维vector会超时,set去重就可以了 然后遍历每个石块,并求出其所能到达石块 所能跳的距离 最后判断第n - 1个石块是否有能跳的步数即可 class Solution { 阅读全文
posted @ 2021-04-29 16:45 WTSRUVF 阅读(44) 评论(0) 推荐(0)
摘要:oj上的编译器严格一点 判断的时候用 tmp == (int)tmp 不大行 用的tmp == (floor)tmp 效果一样 class Solution { public: int a[100100]; bool judgeSquareSum(int c) { long long i; for( 阅读全文
posted @ 2021-04-28 16:58 WTSRUVF 阅读(46) 评论(0) 推荐(0)
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), rig 阅读全文
posted @ 2021-04-27 17:28 WTSRUVF 阅读(44) 评论(0) 推荐(0)
摘要:抽象为把序列分成D段,求和最大的段的最小值 下界为最大值,上界为序列和,二分结果,每次去验证是否合适即可 class Solution { public: int shipWithinDays(vector<int>& weights, int D) { int total = 0; int max 阅读全文
posted @ 2021-04-26 17:54 WTSRUVF 阅读(79) 评论(0) 推荐(0)
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), rig 阅读全文
posted @ 2021-04-25 17:20 WTSRUVF 阅读(33) 评论(0) 推荐(0)
摘要:就一个dp,别想歪了 dp[i]表示组成数字i的种数 但这题是真坑。。结果保证int内,不代表中间数字在int内 class Solution { public: long long dp[10010]; int combinationSum4(vector<int>& nums, int targ 阅读全文
posted @ 2021-04-24 16:37 WTSRUVF 阅读(32) 评论(0) 推荐(0)
摘要:忽略奇数偶数步,忽略胶水,就是一个一维dp,例如只能走1 2 4步,dp[n] = dp[n - 1] + dp[n - 2] + dp[n - 4] (当然要注意最后的台阶要单独处理 因为可以到负的层次) 加上奇数偶数步,那就是一个二维dp, dp[0][j]表示偶数步到i层,dp[1][i]表示 阅读全文
posted @ 2021-04-23 15:17 WTSRUVF 阅读(70) 评论(0) 推荐(0)