自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1055)
  • 资源 (11)
  • 收藏
  • 关注

原创 1060- 礼物的最大价值

题目如下在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物解题方法1class Solution {public: int maxValue(ve

2022-03-25 17:24:04 1319 2

原创 1059-前 n 个数字二进制中 1 的个数

题目如下给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例 1:输入: n = 2输出: [0,1,1]解释:0 --> 01 --> 12 --> 10示例 2:输入: n = 5输出: [0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --> 101这道题需要计算从 0 到 n 的每个整数的二进

2022-03-25 10:41:02 1738

原创 1058-加减的目标值

题目如下给定一个正整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最终目标和为

2022-03-24 22:10:02 636

原创 1057-插入、删除和随机访问都是 O(1) 的容器

题目如下设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构:insert(val):当元素 val 不存在时返回 true ,并向集合中插入该项,否则返回 false 。remove(val):当元素 val 存在时返回 true ,并从集合中移除该项,否则返回 false 。getRandom:随机返回现有集合中的一项。每个元素应该有 相同的概率 被返回。解题思路思路——————哈希表 + 数组由于题目要求删除和插入的时间复杂度为 O(1),能够满足要求的只有哈希表,显然

2022-03-24 21:08:46 1418

原创 1056-排序数组中只出现一次的数字

题目如下给定一个只包含整数的有序数组 nums ,每个元素都会出现两次,唯有一个数只会出现一次,请找出这个唯一的数字。示例 1:输入: nums = [1,1,2,3,3,4,4,8,8]输出: 2示例 2:输入: nums = [3,3,7,7,10,11,11]输出: 10解题方法1思路和算法假设只出现一次的元素位于下标 x,由于其余每个元素都出现两次,因此下标 x 的左边和右边都有偶数个元素,数组的长度是奇数。由于数组是有序的,因此数组中相同的元素一定相邻。对于下标 x 左边的

2022-03-24 11:51:38 378

原创 1055-值和下标之差都在给定的范围内

题目如下给你一个整数数组 nums 和两个整数 k 和 t 。请你判断是否存在 两个不同下标 i 和 j,使得 abs(nums[i] - nums[j]) <= t ,同时又满足 abs(i - j) <= k 。如果存在则返回 true,不存在返回 false。示例 1:输入:nums = [1,2,3,1], k = 3, t = 0输出:true示例 2:输入:nums = [1,0,1,1], k = 1, t = 2输出:true示例 3:输入:nums = [1

2022-03-23 12:34:10 266

原创 1054-按权重生成随机数

题目如下给定一个正整数数组 w ,其中 w[i] 代表下标 i 的权重(下标从 0 开始),请写一个函数 pickIndex ,它可以随机地获取下标 i,选取下标 i 的概率与 w[i] 成正比。例如,对于 w = [1, 3],挑选下标 0 的概率为 1 / (1 + 3) = 0.25 (即,25%),而选取下标 1 的概率为 3 / (1 + 3) = 0.75(即,75%)。也就是说,选取下标 i 的概率为 w[i] / sum(w) 。示例 1:输入:inputs = [“Soluti

2022-03-23 12:23:24 296

原创 1053-省份数量

题目如下有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入:isConn

2022-03-22 21:51:57 196

原创 1052-狒狒吃香蕉

题目如下狒狒喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。狒狒可以决定她吃香蕉的速度 K (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 K 根。如果这堆香蕉少于 K 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉,下一个小时才会开始吃另一堆的香蕉。狒狒喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 H 小时内吃掉所有香蕉的最小速度 K(K 为整数)。示例 1:输入: piles = [3,

2022-03-22 20:59:39 1454

原创 1051-粉刷房子

题目如下假如有一排房子,共 n 个,每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种,你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。当然,因为市场上不同颜色油漆的价格不同,所以房子粉刷成不同颜色的花费成本也是不同的。每个房子粉刷成不同颜色的花费是以一个 n x 3 的正整数矩阵 costs 来表示的。例如,costs[0][0] 表示第 0 号房子粉刷成红色的成本花费;costs[1][2] 表示第 1 号房子粉刷成绿色的花费,以此类推。请计算出粉刷完所有房子最少的花费成本。示例

2022-03-22 13:18:46 223

原创 1050-语法制导翻译(3)

在递归的预测分析过程中进行翻译L-属性定义的自底向上翻译

2022-03-22 10:57:32 257

原创 1049-语法制导翻译(2)

语法制导翻译方案SDT将S-SDD转换为SDTS-属性定义的SDT 实现将语义动作中的抽象定义式改写成具体可执行的栈操作L-属性定义的SDT 实现L-属性定义的SDT 实现在非递归的预测分析过程中进行翻译...

2022-03-22 10:44:52 668 1

原创 1048-语法制导翻译(1)

什么是语法制导翻译语法制导翻译的基本思想两个概念语法制导定义(SDD)语法制导定义(SDD)语法制导翻译方案(SDT)SDD与SDT语法制导定义SDD综合属性(synthesized attribute)继承属性(inherited attribute)例:带有继承属性L.in的SDD属性文法 (Attribute Grammar)SDD的求值顺序依赖图(Dependency Graph)属性值的计算顺序S-属性定义L-SDD的正式

2022-03-22 10:22:06 282

原创 1047-翻转字符

题目如下如果一个由 ‘0’ 和 ‘1’ 组成的字符串,是以一些 ‘0’(可能没有 ‘0’)后面跟着一些 ‘1’(也可能没有 ‘1’)的形式组成的,那么该字符串是 单调递增 的。我们给出一个由字符 ‘0’ 和 ‘1’ 组成的字符串 s,我们可以将任何 ‘0’ 翻转为 ‘1’ 或者将 ‘1’ 翻转为 ‘0’。返回使 s 单调递增 的最小翻转次数。示例 1:输入:s = “00110”输出:1解释:我们翻转最后一位得到 00111.示例 2:输入:s = “010110”输出:2解释:我们翻

2022-03-21 22:03:16 833

原创 1046-最小时间差

题目如下给定一个 24 小时制(小时:分钟 “HH:MM”)的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入:timePoints = [“23:59”,“00:00”]输出:1示例 2:输入:timePoints = [“00:00”,“23:59”,“00:00”]输出:0解题方法我们注意到,时间点最多只有 24 * 60 个,因此,当 timePoints 长度超过 24 * 60,说明有重复的时间点,提前返回 0。接下来:首先,遍历时间列表,将其转换

2022-03-21 21:38:52 238

原创 1045-小行星碰撞

题目如下给定一个整数数组 asteroids,表示在同一行的小行星。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。找出碰撞后剩下的所有小行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例 1:输入:asteroids = [5,10,-5]输出:[5,10]解释:10 和 -5 碰撞后只剩下 10 。 5 和 1

2022-03-21 20:51:03 362

原创 1044-最长斐波那契数列

题目如下如果序列 X_1, X_2, …, X_n 满足下列条件,就说它是 斐波那契式 的:n >= 3对于所有 i + 2 <= n,都有 X_i + X_{i+1} = X_{i+2}给定一个严格递增的正整数数组形成序列 arr ,找到 arr 中最长的斐波那契式的子序列的长度。如果一个不存在,返回 0 。(回想一下,子序列是从原序列 arr 中派生出来的,它从 arr 中删掉任意数量的元素(也可以不删),而不改变其余元素的顺序。例如, [3, 5, 8] 是 [3, 4, 5

2022-03-21 13:11:39 1273

原创 1043-矩阵中的距离

题目如下给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。两个相邻元素间的距离为 1 。示例 1:输入:mat = [[0,0,0],[0,1,0],[0,0,0]]输出:[[0,0,0],[0,1,0],[0,0,0]]示例 2:输入:mat = [[0,0,0],[0,1,0],[1,1,1]]输出:[[0,0,0],[0,1,0],[1,2,1]]解题思路广度优先搜索矩阵可以看作是无权图,该问

2022-03-20 22:57:12 861

原创 1042-最大的异或

题目如下给定一个整数数组 nums ,返回 nums[i] XOR nums[j] 的最大运算结果,其中 0 ≤ i ≤ j < n 。示例 1:输入:nums = [3,10,5,25,2,8]输出:28解释:最大运算结果是 5 XOR 25 = 28.示例 2:输入:nums = [0]输出:0示例 3:输入:nums = [2,4]输出:6示例 4:输入:nums = [8,10,2]输出:10示例 5:输入:nums = [14,70,53,83,49,91,3

2022-03-20 18:29:28 344

原创 1041-不含重复字符的最长子字符串

题目如下示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子字符串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子字符串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。示例 4:输入: s = “”输出:

2022-03-20 18:17:03 448

原创 1040-有效的变位词

题目如下给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。注意:若 s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同,则称 s 和 t 互为变位词(字母异位词)。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false示例 3:输入: s = “a”, t = “a”输出: false方法一:排序t 是 s 的变位词等价于「两个字

2022-03-20 11:02:02 377

原创 1039-二维子矩阵的和

题目如下给定一个二维矩阵 matrix,以下类型的多个请求:计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。实现 NumMatrix 类:NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化int sumRegion(int row1, int col1, int row2, int col2) 返回左上角 (row1, col1) 、右下角 (row2, col2) 的子矩阵的元素总和。示

2022-03-19 18:20:59 329

原创 1038-字符串中的所有变位词

题目如下给定两个字符串 s 和 p,找到 s 中所有 p 的 变位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。变位词 指字母相同,但排列不同的字符串。解题思路思想:1.数组滑动窗口长度为p串的长度,在s中不停滑动,满足要求就存头部索引值2.字母只有26个用数组代替hashmap,key为1-26字母,value为串中字母出现的频次解题代码class Solution {public: vector<int> findAnagrams(string s,

2022-03-19 18:02:57 279

原创 1037-含有所有字符的最短字符串

题目如下给定两个字符串 s 和 t 。返回 s 中包含 t 的所有字符的最短子字符串。如果 s 中不存在符合条件的子字符串,则返回空字符串 “” 。如果 s 中存在多个符合条件的子字符串,返回任意一个。注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。示例 1:输入:s = “ADOBECODEBANC”, t = “ABC”输出:“BANC”解释:最短子字符串 “BANC” 包含了字符串 t 的所有字符 ‘A’、‘B’、‘C’示例 2:输入:s =

2022-03-19 17:44:27 602

原创 1036-0 和 1 个数相同的子数组

题目如下给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例 1:输入: nums = [0,1]输出: 2说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。示例 2:输入: nums = [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量 0 和 1 的最长连续子数组。解题思路前缀和 + 哈希表由于「0 和 1 的数量相同」等价于「1 的数量减去 0 的数量等于 0」,我们可

2022-03-19 11:05:10 145

原创 1035-编译原理语法分析(4)

SLR分析表达式文法的SLR分析表LR(1)分析法的提出LR(1)项目集闭包GOTO 函数为文法G’ 构造LR(1)项集族LR(1)自动机的形式化定义LR分析表构造算法LALR分析法的提出LALR ( lookahead-LR )分析的基本思想LALR(1)的特点二义性文法的特点二义性if语句文法的SLR分析表二义性文法的使用LR分析中的错误处理...

2022-03-19 10:39:02 204

原创 1035-和大于等于 target 的最短子数组

题目如下给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。示例 2:输入:target = 4, nums = [1,4,4]输出:1示例 3

2022-03-18 21:34:21 200

原创 1034-乘积小于 K 的子数组

题目如下给定一个正整数数组 nums和整数 k ,请找出该数组内乘积小于 k 的连续的子数组的个数。示例 1:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8 个乘积小于 100 的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。示例 2:输入: nums = [1,2,3], k = 0输出: 0解题思路1.要用滑窗这个思

2022-03-18 20:07:53 619

原创 1033-字符串中的变位词

题目如下给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。换句话说,第一个字符串的排列之一是第二个字符串的 子串 。示例 1:输入: s1 = “ab” s2 = “eidbaooo”输出: True解释: s2 包含 s1 的排列之一 (“ba”).示例 2:输入: s1= “ab” s2 = “eidboaoo”输出: False解题方法1滑动窗口class Solution{public: bool checkInclusion

2022-03-17 21:32:14 563

原创 1032-左右两边子数组的和相等

题目如下给你一个整数数组 nums ,请计算数组的 中心下标 。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。解题思路和代码前缀和class Solution {public: int pivotIndex(vector<

2022-03-17 21:02:23 599

原创 1031-只出现一次的数字

题目如下给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,100]输出:100解题思路1哈希表思路与算法我们可以使用哈希映射统计数组中每个元素的出现次数。对于哈希映射中的每个键值对,键表示一个元素,值表示其出现的次数。在统计完成后,我们遍历哈希映射即可找出只出现一次的元素。class Soluti

2022-03-17 20:43:50 141

原创 1030-单词长度的最大乘积

题目如下给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。示例 1:输入: words = [“abcw”,“baz”,“foo”,“bar”,“fxyz”,“abcdef”]输出: 16解释: 这两个单词为 “abcw”, “fxyz”。它们不包含相同字符,且长度的乘积最大。示例 2:输入: words = [“a”,“ab”,“

2022-03-17 20:33:45 130

原创 1029-除法求值

题目如下给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。返回所有问题的答案 。如果存在某个无法确定的答案,则

2022-03-17 18:06:53 361

原创 1028-编译原理语法分析(3)

自底向上的语法分析移入-归约分析的工作过程移入-归约分析器可采取的4种动作LR 分析法LR 分析法的基本原理LR 分析器(自动机)的总体结构如何构造给定文法的LR分析表?LR(0) 项目增广文法 (Augmented Grammar)文法中的项目文法中的项目文法中的项目...

2022-03-17 11:25:55 348

原创 1027-分割等和子集

题目如下给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例 1:输入:nums = [1,5,11,5]输出:true解释:数组可以分割成 [1, 5, 5] 和 [11] 。示例 2:输入:nums = [1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。解题思路动态规划这道题可以换一种表述:给定一个只包含正整数的非空数组 nums[0],判断是否可以从数组中选出一些数字,使得这些数字

2022-03-16 20:07:42 373

原创 1026-字符串解码

题目如下给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:“aaabcbc”示例 2:输入:

2022-03-16 13:06:38 486

原创 1025-编译原理语法分析(2)

计算文法符号X的FIRST(X )算法计算串X1X2 …Xn的FIRST 集合计算非终结符A的FOLLOW(A)例:表达式文法各产生式的SELECT 集LL(1)文法的分析方法递归的预测分析法非递归的预测分析法递归的预测分析法非递归的预测分析法表驱动的预测分析法递归的预测分析法vs.非递归的预测分析法预测分析法实现步骤预测分析中的错误检测两种情况下可以检测到错误栈顶的终结符和当前输入符号不匹配栈顶非终结符与当前输入符号在预测分

2022-03-16 11:09:44 345

原创 1024-编译原理语法分析(1)

自顶向下的分析(Top-Down Parsing)最左推导(Left-most Derivation)最右推导(Right-most Derivation)最左推导和最右推导的唯一性自顶向下的语法分析采用最左推导方式例自顶向下语法分析的通用形式预测分析 (Predictive Parsing)文法转换消除直接左递归提取左公因子算法LL(1) 文法非终结符的后继符号集产生式的可选集串首终结符集LL(1)文法...

2022-03-16 09:11:13 402

原创 1023-编译原理正则表达式

正则表达式正则表达式的定义例例:C语言无符号整数的RE正则语言可以用RE定义的语言叫做正则语言(regular language)或正则集合(regular set)RE的代数定律正则文法与正则表达式等价正则定义(Regular Definition)例1例2有穷自动机FA的典型例子FA模型FA的表示FA定义(接收)的语言最长子串匹配原则(Longest String Matching Principle)FA的分类确定的有穷自动机 (D

2022-03-07 19:29:52 892

原创 1022-编译原理语言及其文法

字母表 (Alphabet)➢字母表∑是一个有穷符号集合➢符号:字母、数字、标点符号、…字母表上的运算串(String)串上的运算——连接串上的运算——幂自然语言的例子——句子的构成规则文法的形式化定义产生式的简写符号约定自然语言的例子推导 (Derivations)和归约(Reductions)句型和句子语言的形式化定义语言上的运算Chomsky 文法分类体系CFG的分析树分析树是推导的图形化表

2022-03-05 21:57:24 283

Memcached重要结构.doc

Memcached重要结构

2021-10-27

memcached-1[1].2.8.zip

memcaced安装包

2021-10-27

Memcached内存分析、调优、集群.ppt

Memcached内存分析、调优、集群.

2021-10-27

Memcached源码剖析笔记.pdf

Memcached源码剖析笔记

2021-10-27

BitTable实现.doc

BitTable实现

2021-10-27

C++实现线程池.cpp

C++版本实现线程池

2021-10-27

运动会管理平台(数据库大作业).zip

数据库课程设计-运动会管理平台

2021-10-27

计算机网络课程设计.zip

计算机网络课程设计(组网设计)

2021-10-26

libco协程库.zip

C++的libco协程库源代码和课件笔记

2021-10-26

md5源代码.zip

md5源代码,可用于文件加密解密,实现秒传功能,可用于哈希映射

2021-10-26

空空如也

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

TA关注的人

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