随笔分类 - LeetCode 周赛
摘要:第一题 class Solution { public: int countEven(int num) { int ans = 0; for(int i=1;i<=num;i++) { int res = 0; int x = i; while(x) { res+= (x%10); x/=10; }
阅读全文
摘要:恢复内容开始 第一题 简单的二分查找 class Solution { public: int findFinalValue(vector<int>& nums, int original) { sort(nums.begin(), nums.end()); while(find(original,
阅读全文
摘要:题目 在一个数组里面找到两个数异或的结果在某个范围之内。 这种题目,就要用二叉树, 代码写的又臭又长。。 struct Node { int value; int left; int right; int num; int pos; }tree[200005]; class Solution { p
阅读全文
摘要:题目 题意:一堆橘子,要么吃一个,如果橘子数量能被2整除就可以吃一半,如果橘子数量能被3整除就可以吃三分之二,请问最少几次能吃完? 题解:橘子的个数是n,按照贪心的思想,肯定是吃一半或者吃三分之二划算。因此每一步,都有两种选择,要么一个一给吃,吃到能被2整除,然后吃掉一半。要么一个一个吃,吃到能被3
阅读全文
摘要:"第一题" 判断字符串是不是子串,效率高的方式应该是字典树,按照字典序排序后,建树,再建的过程中就可以得到答案。 但是这是比赛中,又是第一题,所以直接用contains了 c "第三题" 很简单的一道字符串替换的题目
阅读全文
摘要:"第一题" "第四题" 数位DP,之前没有接触过,这次学了一下数位DP
阅读全文
摘要:40分钟刷完4题,打破自己的最高纪录 "第一题" "第二题" 遍历除数的时候从1到sqrt(nums[i]) 10000 sqrt(100000) 是不会超时的 "第四题" KMP 的求最长公共前后缀的部分,就是Next的部分
阅读全文
摘要:"第一题" "第三题" "第四题"
阅读全文
摘要:这次终于四题全过了。 这次比赛也确实比较简单 "第一题"
阅读全文
摘要:"题目" 题解:当然可以O(n k)的效率,但是这样很low,我们可以用O(n log(k))的效率去解决。 首先按照暴力的思想,从一个元素x开始,遍历它后面的k 1位元素,判断是否有符合的条件。如果将这个k个数排序的话,就不用遍历啦,只要找到x的位置,然后判断x的前后是否满足条件皆可以了。 但是如
阅读全文
摘要:"Number of Days Between Two Dates " 计算两个日期的相差天数 "Validate Binary Tree Nodes " 给你一些点和边,判断是否是一颗二叉树。只需要判断所有点的入度& leftChild, vector& rightChild) { for(int
阅读全文
摘要:"题目" 题意:从1 9中选出k个数之和等于n,这个k个数不能有相同的,输出所有可能的k个数字的集合,结果也不能重复 题解:暴搜,从n开始,每次减去1 9中的某个数字,然后继续递归。要注意剪枝,比如1 9中的数字大于n/k的是不可能存在答案中的,如果n 的值小于sum[k]也是不会有答案的。sum[
阅读全文
摘要:"题目" 题意:找到一个数组里第K大的数字。 题解:我们当然可以排序好了,之后,选择第K大的数字。但是这样做一点技术含量也没有。 排序算法选用快排。寻找第K大的数字,不必把数组完全排完序之后,再找第K大。快排中是选取一个数字,把大于它的放在右边,小于它的放在左边,在递归的时候,我们判断k 和右边数字
阅读全文
摘要:"题目" 题意:举例:给你一个数组[9,3,5],问你这个数组是否可以由数组[1,1,1]经过某种变换得到。 变换的步骤就是每次用数组的和,去替代数组中的某一个元素,直到达到目标数组。 题解:我们从后往前递推,比如[9,3,5],那么它的上一个状态一定是[1,3,5] ,继续[1,3,1] [1,1
阅读全文
摘要:"题目" 题意:有n个节目,每个节目有一个持续的天数,你一天只能看一个节目,问你这么多天最多能看几个节目 题解:贪心,我们把那种截止日期最近的节目,都看了。把节目按照截止日期从小到大排序。接下来一个一个节目看,可以用数组标记的方法,for循环判断在当前节目的区间内,还有有没有天数是空闲的。 最后一步
阅读全文
摘要:"题目" 题意:求一个数组的后k个数字的乘积,这个数组是不断动态增加的。 题解:由于数字可能为0,所以我们只要维护最后一个0 的位置pos 之后的所有数字的前缀乘积就可以了。如果kpos那么答案就是s[len]/s[len k]
阅读全文
摘要:"题目"
阅读全文
摘要:"https://leetcode.com/problems/shortest palindrome/" 好题目啊! 题目: Given a string s, you are allowed to convert it to a palindrome by adding characters in
阅读全文
摘要:"题目"
阅读全文
摘要:"题目" 用hash,比较两个字符串数组的每个字符的hash值
阅读全文