上一页 1 2 3 4 5 6 7 8 ··· 73 下一页
摘要: 题目 动态就区间和,线段树,树状数组都可以 class NumArray { public: int n; int c[100005]; vector<int> nums; NumArray(vector<int>& nums) { this->nums = nums; memset(c,0,siz 阅读全文
posted @ 2020-06-03 15:30 Shendu.CC 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 题目 简单小模拟 class Solution { public: std::string::size_type sz = 0; bool isAdditiveNumber(string num) { for (int i = 0; i < num.length(); i++) { for (int 阅读全文
posted @ 2020-06-03 15:29 Shendu.CC 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题目 二维的,那就二维前缀和数组 class NumMatrix { public: int prefix[1005][1005]; NumMatrix(vector<vector<int>>& matrix) { memset(prefix,0,sizeof(prefix)); for(int i 阅读全文
posted @ 2020-06-03 15:28 Shendu.CC 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 题目 求区间,固定的数组,用前缀和数组 class NumArray { public: vector<int> prefix; NumArray(vector<int>& nums) { prefix.push_back(0); for(int i=0;i<nums.size();i++) { p 阅读全文
posted @ 2020-06-03 15:26 Shendu.CC 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目 删除最少的括号,让所有括号匹配起来。 大部分都是用DFS,或者BFS。我用的DP,也可以过 dp[i][j] :means it need remove at least dp[i][j] characters to get vaild parenthese from position i t 阅读全文
posted @ 2020-06-03 15:22 Shendu.CC 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目 经典题目,最长递增子序列。 有O(n2)效率,还有O(n*logn)效率的。 O(n2)的效率很好理解的啦,就是大家最常见的那种DP O(n*logn) 的方法是维护一个递增的栈,这个栈不等于最长递增子序列。但是数组的长度一定是等于最长递增子序列的长度的。 遍历原始数组,每次的操作是把当前元素 阅读全文
posted @ 2020-05-28 13:18 Shendu.CC 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题目 比较两个字符串,有多少相同位置的字符是相同的,相同的字符放在不同的位置 class Solution { public: int digit[10]; string getHint(string secret, string guess) { int a = 0, b = 0; for (in 阅读全文
posted @ 2020-05-28 11:46 Shendu.CC 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目 树的序列化, /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), lef 阅读全文
posted @ 2020-05-28 11:44 Shendu.CC 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目 求一个数组的中位数,但是这个数组是动态增加的,怎么做呢?可以考虑到用插入排序,每增加一个值,都插入排序一下,最坏的效率是O(n),查询效率是O(1) 效率太低,会超时。更高明的做法,是维护两个堆,一个是大堆,一个是小堆,大堆的数字都大于小堆里的数字,两个堆的数字均分这个数字。大堆用最小堆实现, 阅读全文
posted @ 2020-05-26 20:12 Shendu.CC 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题目 题意:地上有一堆石头,每次只能拿1-3个石头,两个人轮流拿,谁拿走最后一个石头,谁就获胜。你先手。 题解:如果地上的石头小于等于3个,先手必赢,当等于4的时候,后手必赢。基于4我们可以推出,当石头的数=8的时候,后手也必赢,5,6,7都是先手赢,所以规律可以递推找到,就是看是否是4的整数倍。 阅读全文
posted @ 2020-05-26 20:02 Shendu.CC 阅读(143) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 73 下一页