练习题记录
文章平均质量分 98
foreveryao123
U3D客户端开发,喜欢玩游戏,正在学习和分享如何自创一个游戏,希望可以和大家多多交流。
展开
-
Leetcode周赛专题
204场周赛5500. 乘积为正数的最长子数组长度解题思路:我们使用两个数组来进行动态规划,分别为p_dp[i]:以 i 结尾乘积为正数得最长子数组长度n_dp[i]:以 i 结尾乘积为负数得最长子数组长度。当nums[i]为不同情况时,每个数组得不同操作如下:nums[i] > 0时,p_dp[i] = p_dp[i - 1] + 1即可。n_dp[i] 要根据n_dp[i - 1] 是否存在负数得最长子数组,若存在则乘上一个正数还是负数所以n_dp[i] = n_dp[i - 1.原创 2020-08-31 17:56:58 · 287 阅读 · 0 评论 -
Leetcode树专题
二叉树的层序遍历解题思路:这是对二叉树进行层级遍历考研,不同的是存储的方式,使用2维数组进行存储,所以我们先记录该层的数量,进行该层的vector存储,然后进行下一层的遍历,以此类推。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : v原创 2020-08-20 09:53:50 · 75 阅读 · 0 评论 -
Leetcode每日一题专题
通配符匹配字符串、动态规划思路:动态规划法:1.定义数组dp[i][j]:s的前i个字符串匹配p的前j个字符串2.数组之间的关系:假设p[j] = '*' 那么如果使用星号就等于dp[i - 1][j],如果不使用就等于dp[i][j - 1],假设为问号或者s和p匹配,那么就等于dp[i - 1][j - 1]3.初始化数组:dp[0][0] = true,并且当p = '*'且s为空时,dp[0][i] = true字符串匹配法:设定两个标识位,分别标识当存在星号时,i原创 2020-07-22 15:59:48 · 127 阅读 · 0 评论 -
Leetcode动态规划专题
基本思路:定义数组的含义 找到关系数组之间的关系 找到初始化值原创 2020-07-14 09:26:26 · 176 阅读 · 1 评论 -
LeetCode回溯法专题
基本思路前序:在搞清楚基本思路之前,我们先根据每个回溯题目的大概思路,思考一下回溯法的难点在哪里。难点1:回溯函数的参数的决定回溯函数能如何进行下一步最关键的就是参数要怎么变化,找到每一步有哪些参数进行改变了,进行下一步要改变的参数又是拿些。这就可以确定了回溯函数的参数难点2:每一步回溯函数的逻辑在一步的回溯法中,要找到这步的选择列表,然后思考要不要使用到后面回溯的结果,最后再决定每个数要进行操作难点3:回溯法的回溯操作回溯操作就是回归到上一步的状态。例如在数组中就删除最后进原创 2020-05-24 16:50:06 · 624 阅读 · 1 评论 -
leetcode位运算专题
或运算的最小翻转次数题目:给你三个正整数a、b 和 c。你可以对 a 和 b的二进制表示进行位翻转操作,返回能够使按位或运算a OR b == c成立的最小翻转次数。「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。思路:对比每个二进制中得位数,不用管a,b,c变成多少,只要翻转得最小次数即可。代码:class Solution {public: int minFlips(int a, int b, int c...原创 2020-05-18 21:17:18 · 308 阅读 · 0 评论 -
牛客网练习题
222.音乐研究:解题思路:首先,必须要使用到第一段得全部数据而且还是连续,这样我们就只要找到第二段中得第一个数,后面就是循环相减找到最小即可代码:#include<iostream> #include<string> #include<algorithm> #include<math.h> #include<cmat...原创 2020-02-07 17:39:50 · 566 阅读 · 0 评论 -
牛客竞赛小白赛17题解
1.小sun的假期题目:求出数组中的最长连接数思路:我的思路:先把全部的输入数从大到小整合起来(全部重复的忽略,部分重复的就合成一个时间段),然后遍历数组找出最长连接数网络的思路:直接按照每组的第一个数来排序,(nowl,nowr分别初始化为第一个数的l,r值),从第二个数开始,只要r大于nowr就改nowr值,只要l小于nowr就跳过。(还没搞懂)代码:我的代码:...原创 2019-10-19 00:23:27 · 574 阅读 · 0 评论 -
Leetcode 刷题记录
写给自己的:算法是一个很关键的技能,关于思路和编译能力的提升都有很大的帮助,一个题不要只是想怎么解决出来,而是想怎么最快的解决,虽然这样很慢,但是现在的目标不是什么速成,慢下来可能也是件好事吧。去真正的搞懂每一题。三数之和这题使用双向法,使用k,i,j的索引来标记三个数,使用while循环,判断哪三个数符合要求。代码:class Solution {publi...原创 2019-11-21 22:43:23 · 213 阅读 · 0 评论 -
cf平台刷题日常
706B - Interesting drink直接使用vector<int>来存放数据,再每个判断多少个数据少于num即可;但是这里有个很大的陷阱,那就是时间限制,直接使用for循环给vec是错误的,必须使用二分法查找才能通过,这也给我提供了一个新的思路,如果使用循环超时的话,可以考虑一下二分法查找;代码:#include<iostream>#incl...原创 2019-03-10 23:30:16 · 2237 阅读 · 0 评论