每天一练(找回手感)
luckymik
加油加油加油~~~~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【每日一练】
一、HDU - 1247 Hat’s Words(字典树)Problem DescriptionA hat’s word is a word in the dictionary that is the concatenation of exactly two other words in the dictionary.You are to find all the hat’s words in a dictionary.InputStandard input consists of a n原创 2020-07-28 23:00:40 · 296 阅读 · 0 评论 -
【每日一练】
一、青蛙跳台阶问题一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21提示:0 <= n <= 100解题思路:斐波那契取模class Solution {public: int numWays(int n) { .原创 2020-07-24 23:45:23 · 208 阅读 · 0 评论 -
【每天一练】
一、至多包含两个不同字符的最长子串给定一个字符串 s ,找出至多包含两个不同字符的最长子串 t ,并返回该子串的长度。示例 1:输入: "eceba"输出: 3解释: t 是 "ece",长度为3。示例 2:输入: "ccaabbb"输出: 5解释: t 是 "aabbb",长度为5。解题思路:始终维持一个map中的两个字母数目,使用左右指针O(n)求出最优解class Solution {public: int lengthOfLongestSubstri..原创 2020-07-23 22:40:15 · 291 阅读 · 0 评论 -
【每天一练】
一、零钱兑换给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1解题思路:看到这个就是 无限货物 dp问题 直接简单dp 就可以了, dp[i]表示到达i所需最少货...原创 2020-07-22 23:45:36 · 388 阅读 · 0 评论 -
【每天一练】
一、数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。解题思路:维护长度为K的一个小顶堆(小的元素在队首), 这样队首元素就是第k大的值,时间复杂度为O(n*log(.原创 2020-07-21 23:51:52 · 130 阅读 · 0 评论 -
【每日一练】
一、矩阵中的路径请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据原创 2020-07-20 23:24:44 · 150 阅读 · 0 评论 -
【每日小练】
一、环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], pos = 0输出:true解释:链表中有一个环,其尾部连接到第一个节点。示例 3:输入:head...原创 2020-07-19 23:58:01 · 135 阅读 · 0 评论 -
【每天小练】
一、用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead..原创 2020-07-18 20:54:06 · 127 阅读 · 0 评论 -
【每天小练】
一、替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."解题思路:为每一个空格在后方添加两个字符,然后从后往前扫描,如果遇到空格就赋值%20 这样就不用开一个新的数组class Solution {public: string replaceSpace(string s) { int lenFirst = s.size(); .原创 2020-07-17 23:41:14 · 191 阅读 · 0 评论 -
【每天小练】
一、数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000解法:使用map 如果存取过就返回重复值class Solution {public: int findRepeatNumber(...原创 2020-07-16 22:50:03 · 155 阅读 · 0 评论
分享