自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(206)
  • 资源 (1)
  • 收藏
  • 关注

原创 POJ 2449 Remmarguts‘ Date---SPFA求评估函数 + A*最小堆BFS

POJ 2449 Remmarguts’ DateTime Limit: 4000MS Memory Limit: 65536KDescription“Good man never makes girls wait or breaks an appointment!” said the mandarin duck father. Softly touching his little ducks’ head, he told them a story.“Prince Remmarguts lives

2020-11-02 22:32:14 334 1

原创 POJ1456---Supermarket---贪心+小根堆

POJ1456 SupermarketTime Limit: 2000MS Memory Limit: 65536KDescriptionA supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral number of time units starting from

2020-11-01 22:44:22 545

原创 POJ 3764--The xor-longest Path---DFS + Trie(最大异或值)

POJ 3764 The xor-longest PathTime Limit: 2000MS Memory Limit: 65536KDescriptionIn an edge-weighted tree, the xor-length of a path p is defined as the xor sum of the weights of edges on p:We say a path the xor-longest path if it has the largest xor-l

2020-11-01 21:54:30 286

原创 洛谷---CF1042B Vitamins---状压DFS(剪枝)

输入输出样例输入 #145 C6 B16 BAC4 A输出 #115输入 #2210 AB15 BA输出 #2-1输入 #3510 A9 BC11 CA4 A5 B输出 #313输入 #46100 A355 BCA150 BC160 AC180 B190 CA输出 #4250输入 #525 BA11 CB输出 #516代码#include <iostream>#inclu.

2020-09-28 12:44:42 225

原创 牛客---牛牛的数列

链接:牛牛的数列时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K 64bit IOFormat:%lld题目描述牛牛现在有一个n个数组成的数列,牛牛现在想取一个连续的子序列,并且这个子序列还必须得满足:最多只改变一个数,就可以使得这个连续的子序列是一个严格上升的子序列,牛牛想知道这个连续子序列最长的长度是多少。输入描述:输入包括两行,第一行包括一个整数n(1 ≤ n ≤ 10^5),即数列的长度;第二行n个整数a_i, 表示数列中的每个数(

2020-09-20 20:53:03 337

原创 Leetcode---685. 冗余连接 II---每日一题---并查集(有向环路问题)

685. 冗余连接 II在本问题中,有根树指满足以下条件的有向图。该树只有一个根节点,所有其他节点都是该根节点的后继。每一个节点只有一个父节点,除了根节点没有父节点。输入一个有向图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。 每一个边 的元素是一对 [u, v],用以表示有向图中连接顶点 u 和顶点 v 的边,其中 u 是 v 的一个父节点。返回一条能删除

2020-09-17 23:35:16 275

原创 Leetcode---37. 解数独---每日一题---DFS(回溯)

37. 解数独编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字 1-9 和字符 ‘.’ 。你可以假设给定的数独只有唯一解。给定数独永远是 9x9 形式的。...

2020-09-15 13:56:16 150

原创 Leetcode---51. N 皇后---每日一题---DFS(回溯)---复习皇后问题

51. N 皇后n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入: 4输出:[[".Q…", // 解法 1“…Q”,“Q…”,“…Q.”],["…Q.", // 解法 2“Q…”,“…Q”,“.Q…”]]解释: 4

2020-09-03 10:48:13 222

原创 Leetcode---214. 最短回文串---每日一题---Rabin-Karp

214. 最短回文串给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:输入: “aacecaaa”输出: “aaacecaaa”示例 2:输入: “abcd”输出: “dcbabcd”思路我们首先看实例可以看出目标串为原串的前面加上原串的逆序串的一部分,即abcd -> dcba abcd,从中间扩展,我们发现aa回文,可以删除一个。然后通过Rabin-Karp算法来计算逆序和正序的hash值和,当相同时

2020-08-29 11:44:06 390

原创 Leetcode---17. 电话号码的字母组合---每日一题---DFS(回溯)

17. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。代码class Solution {public: vector<string> map = {

2020-08-26 09:52:37 236

原创 Leetcode---491. 递增子序列---每日一题---DFS(回溯)

491. 递增子序列给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明:给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。思路就是直接深度搜索,但是直接搜索,会发现

2020-08-25 12:53:24 267

原创 CCF--- 202006-2---稀疏向量

试题编号:202006-2试题名称:稀疏向量时间限制:2.0s内存限制:512.0MB问题描述代码#include<iostream>#include<unordered_map>using namespace std;typedef long long LL;unordered_map<int, LL> vis;int main() { // 不加会超时,用IO流的话必须优化输入输出的速度 ios...

2020-08-23 11:18:38 301

原创 Leetcode---679. 24 点游戏---每日一题---回溯

679. 24 点游戏你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算符对两个数进行运算。特别是我们不能用 - 作为一元运算符。例如,[1, 1, 1, 1

2020-08-22 11:08:19 214

原创 CCF--- 202006-1--- 线性分类器---C++11

试题编号202006-1试题名称线性分类器时间限制1.0s内存限制512.0MB问题描述实现代码#include<iostream>#include<string>using namespace std;const int maxn = 1e3 + 5;int buff, n, m;char type;struct Point{ int x, y; char type; Point() {} Point(i...

2020-08-20 13:19:05 297

原创 Leetcode---109. 有序链表转换二叉搜索树---每日一题---分治(快慢指针)

109. 有序链表转换二叉搜索树给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:思路       由于链表是没有索引的,所以对于二分的实现有些难以实现,这里我们使用快慢指针的方法可以有效的解决,给快指针调速至慢指针的二倍从而达到getMid的效果从而实现分治。代码/** * Definition for

2020-08-18 11:27:48 165

原创 Leetcode---20. 有效的括号---每日一题

20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入: “([)]”输出: false示例 5:输入: “{[]}”输出: tru

2020-08-14 10:00:42 123

原创 Leetcode---130. 被围绕的区域---每日一题---DFS

130. 被围绕的区域给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会被填充为 ‘X’。 任何不在边界上,或不与边界上的 ‘O’ 相连的 ‘O’ 最终都会被填充为 ‘X

2020-08-11 10:58:56 260

原创 Leetcode---99. 恢复二叉搜索树---每日一题

99. 恢复二叉搜索树二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出一个只使用常数空间的解决方案吗?实现代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : va

2020-08-08 10:35:16 250

原创 Leetcode---337. 打家劫舍 III---每日一题---树型DP(记忆化DFS)

打家劫舍 III在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。DFS(记忆化)/** * Definition for a binary tree node. * struct T.

2020-08-05 10:36:41 222

原创 Leetcode---207. 课程表---每日一题---拓扑排序(DFS)

207. 课程表你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]]输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示例 2:输入: 2, [[1,0],[0,1]]输

2020-08-04 14:40:35 220

原创 Leetcode---面试题 08.03. 魔术索引---每日一题---二分查找

面试题 08.03. 魔术索引魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。示例1:输入: nums = [0, 2, 3, 4, 5]输出: 0说明: 0下标的元素为0示例2:输入: nums = [1, 1, 1]输出: 1提示:nums长度在[1, 1000000]之间二分查找cla

2020-07-31 10:39:11 228 1

原创 Leetcode---329. 矩阵中的最长递增路径---每日一题---优先队列

329. 矩阵中的最长递增路径给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3, 4, 5, 6]。注意

2020-07-26 11:08:19 160

原创 Leetcode---410. 分割数组的最大值---每日一题---动态规划 or 二分查找

410. 分割数组的最大值给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组。设计一个算法使得这 m 个子数组各自和的最大值最小。注意:数组长度 n 满足以下条件:1 ≤ n ≤ 10001 ≤ m ≤ min(50, n)示例:输入:nums  =  [7,2,5,10,8]m  =  2输出:18解释:一共有四种方法将nums分割为2个子数组。其中最好的方式是将

2020-07-25 11:49:40 239

原创 剑指 Offer 11. 旋转数组的最小数字---二分查找

剑指 Offer 11. 旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出: 1示例 2:输入:[2,2,2,0,1]输出: 0思路若旋转后,最右边的数字是必然收到牵连的,且必然存在一段递增序列在最右边到左边的某个位置。二分的情况下,左边被旋转

2020-07-22 11:12:58 151

原创 Leetcode---95. 不同的二叉搜索树 II---每日一题---递归

95. 不同的二叉搜索树 II给定一个整数 n,生成所有由 1 … n 为节点所组成的 二叉搜索树 。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:提示:0 <= n <= 8实现代码/** * Definition for a binary tree node. * struct TreeNode { * int v

2020-07-21 11:34:30 140

原创 仿京东放大镜---JS实现

实现效果H5代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>京东放大镜</title></head><body> &lt

2020-07-20 23:14:59 954 1

原创 JS 实时计时器---setInterval()

实现       学了BOM的定时器setInterval(),就想着做一个玩玩,这个定时器是在某个时间后重复调用的作用。H5<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, init

2020-07-19 20:24:08 311

原创 Leetcode---312. 戳气球---每日一题---记忆化 or 动态规划

312. 戳气球有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。如果你戳破气球 i ,就可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表和 i 相邻的两个气球的序号。注意当你戳破了气球 i 后,气球 left 和气球 right 就变成了相邻的气球。求所能获得硬币的最大数量。说明:你可以假设 nums[-1] = nums[n] = 1,但注意

2020-07-19 12:11:00 294

原创 Leetcode---97. 交错字符串---每日一题---动态规划

97. 交错字符串给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”输出: true示例 2:输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”输出: false实现代码class Solution {public: bool isInterleave(string s1, st

2020-07-18 12:19:54 230

原创 Leetcode---740. 删除与获得点数---动态规划

740. 删除与获得点数给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6解释:删除 4 来获得 4 个点数,因此 3 也被删除。之后,删除 2 来获得 2 个点数。总共获得 6 个点数。示例 2

2020-07-17 12:04:34 182

原创 蓝桥杯---算法训练---2的次幂表示---递归

算法训练 2的次幂表示资源限制时间限制:1.0s 内存限制:512.0MB问题描述       任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。  将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=27+23+2^0  现在约定幂次用括号来表示,即a^b表示为a(b)  此时,137可表示为:2(7)+2(3)+2(0)  进一步:7=22+2+20

2020-07-16 17:10:42 138

原创 Leetcode---785. 判断二分图---每日一题---DFS+二分图

785. 判断二分图给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i,并且graph[i]中没有重复的值。示例 1:输入: [[1,3], [0,2],

2020-07-16 11:13:39 207

原创 JS实现简单留言栏

JS实现简单留言栏H5 + CSS部分<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style>

2020-07-15 17:28:16 341

原创 Leetcode---174. 地下城游戏---每日一题---动态规划

174. 地下城游戏一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则

2020-07-12 13:30:22 260

原创 牛客---疯狂过山车

时间限制:C/C++ 5秒,其他语言10秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述今天牛牛去游乐园玩过山车项目,他觉得过山车在上坡下坡的过程是非常刺激的,回到家之后就受到启发,想到了一个问题。如果把整个过山车的轨道当作是一个长度为n的数组num,那么在过山车上坡时数组中的值是呈现递增趋势的,到了最高点以后,数组中的值呈现递减的趋势,牛牛把符合这样先增后减规律的数组定义为金字塔数组,请你帮牛牛在整个num数组中找出长度最长的金字.

2020-07-11 23:36:06 258

原创 牛客---牛牛扔牌

时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述牛牛现在有n张扑克牌,每张扑克牌都有点数和花色两部分组成。点数为‘1’-‘9’的正整数,花色为’C’,‘D’,‘H’,‘S’'其中的一个,分别表示梅花、方块、红桃、黑桃。现在牛牛想按一定的顺序把这n张牌扔掉。扔牌顺序的规则如下:如果现在还剩素数张牌,则将牌顶的牌扔掉如果现在还剩非素数张牌,则将牌底的牌扔掉牛牛想知道他的扔牌顺序是什么,请返.

2020-07-11 23:29:25 252

原创 Leetcode---315. 计算右侧小于当前元素的个数---每日一题---树状数组+离散化

315. 计算右侧小于当前元素的个数给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入: [5,2,6,1]输出: [2,1,1,0]解释:5 的右侧有 2 个更小的元素 (2 和 1).2 的右侧仅有 1 个更小的元素 (1).6 的右侧有 1 个更小的元素 (1).1 的右侧有 0 个更小的元素.实现代码class BIT {priva

2020-07-11 11:28:36 164

原创 Leetcode---309. 最佳买卖股票时机含冷冻期---每日一题---动态规划

309. 最佳买卖股票时机含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:输入: [1,2,3,0,2]输出: 3解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]思路分为三个路线推出状态转移方程:持股状

2020-07-10 11:19:49 279

原创 Leetcode---面试题 17.13. 恢复空格---每日一题---动态规划+字典树

面试题 17.13. 恢复空格哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!“已经变成了"iresetthecomputeritstilldidntboot”。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。注意

2020-07-09 13:20:54 218

原创 JS---ES6格式化日期输出

引子        今天在学习DOM的时候,做一个修改元素的案例,想要做个简单的获取时间的网页,发现在格式化输出时es6版本的JS已经删除了format()函数,没办法,只能自己手写一个。// 补零函数function JoinZero(num) { return num < 10 ? '0' + num : num;}// 获取时间function getTime(date) { var time = (

2020-07-07 19:10:20 2236

ACM算法模板.pdf

ACM,CSP等竞赛的算法模板,整理于某大神之手,适用于参加PAT,CSP,ACM,蓝桥杯等算法竞赛的模板。

2019-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除