自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

92377

Far from being a good programmer

  • 博客(261)
  • 资源 (1)
  • 收藏
  • 关注

原创 【力扣】动态规划题目之“最”系列

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。给你一个字符串 s,找到 s 中最长的回文子串。子数组 是数组中的一个连续部分。

2023-09-29 16:35:22 527

原创 【面试】ip地址转化为整数——位运算以及文件输入输出流

【代码】【面试】ip地址转化为整数——位运算以及文件输入输出流。

2023-09-25 12:52:10 167 1

原创 【面试】找到一个数组中超过一半的数——摩尔投票算法

算法首先将数组的第一个元素作为候选众数,并设置初始计数为1。然后,遍历数组中的每个元素,如果当前元素等于候选众数,则增加计数,否则减少计数。当计数降为0时,算法更换候选众数为当前元素,并重置计数。最终,候选众数即为超过一半的数。

2023-09-25 12:47:19 316

原创 【面试】卡夫卡Kafka相关

Kafka(发音为卡夫卡)是一种开源的流式处理平台和消息代理系统,最初由LinkedIn开发,并于2011年成为Apache软件基金会的顶级项目。Kafka被设计用于高吞吐量、持久性和可扩展性的数据流处理。:Kafka 是一个高性能的分布式消息代理,允许应用程序发布和订阅消息流。它可以处理大规模的实时数据流,并将消息传递给多个消费者。:Kafka 是一个分布式系统,允许数据分布在多个服务器上,以实现高可用性和容错性。它使用分区(partition)来水平扩展数据存储和处理能力。

2023-09-25 11:00:06 407

原创 【面试】IO多路复用

IO多路复用是一种机制,它允许单个线程同时监视多个IO通道的就绪状态,从而提高了IO操作的效率。对于网络编程来说,它是一种非常重要的技术,因为它允许我们在一个单线程中管理多个并发的网络连接,而不需要为每个连接创建一个单独的线程,从而降低了资源开销和提高了性能。IO多路复用是一种实现事件驱动编程的机制,它允许程序等待多个IO事件,并在事件发生时响应。IO多路复用(IO Multiplexing)是一种用于处理多个IO操作的机制,它允许单个线程同时监视多个IO通道的就绪状态,从而提高了IO操作的效率。

2023-09-25 10:43:43 203

原创 十大排序算法的实现(C/C++)

已在之前的回答中给出。

2023-09-25 09:59:16 389

原创 【力扣】链表题目总结

文章目录链表基础题型一、单链表翻转、反转、旋转1.反转链表2.反转链表II——反转部分链表3.旋转链表4.K个一组翻转链表5.反转偶数长度组的节点二、删除单链表中的结点1.删除链表的结点2.删除未排序链表中的重复节点3.删除已排序链表中的重复元素I——重复元素只剩下一个4.删除已排序链表中的重复元素II——重复元素全部删除5.删除链表的倒数第n个结点6.从链表中移除结点7.删除链表的中间结点8.从链表中删除总和值为零的连续节点9.删除链表中的结点三、链表排序1.单链表排序2.合并k个升序单链表3.重排单链表

2023-08-04 17:52:15 444

原创 CSDN第59期竞赛参赛体验

竟然只能一题提交才能查看下一题。而且题目描述bug也不清晰,bug挺多的。

2023-06-28 21:04:20 51

原创 力扣——面试题 04.09. 二叉搜索树序列

从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。给定一个由不同节点组成的二叉搜索树 root,输出所有可能生成此树的数组。push_front():在deque的前面添加元素。pop_back():删除deque的最后一个元素。clear():删除deque中的所有元素。

2023-03-28 16:38:44 313

原创 Leetcode-6178. 将区间分为最少组数

给你一个二维整数数组 intervals ,其中 intervals[i] = [lefti, righti] 表示 闭 区间 [lefti, righti]。你需要将 intervals 划分为一个或者多个区间 组 ,每个区间 只 属于一个组,且同一个组中任意两个区间 不相交。请你返回 最少 需要划分成多少个组。如果两个区间覆盖的范围有重叠(即至少有一个公共数字),那么我们称这两个区间是 相交 的。比方说区间 [1, 5] 和 [5, 8] 相交。

2022-09-12 16:33:35 142

原创 Leetcode2063. 所有子字符串中的元音

给你一个字符串 word ,返回 word 的所有子字符串中 元音的总数 ,元音是指 ‘a’、‘e’、‘i’、‘o’ 和 ‘u’。子字符串 是字符串中一个连续(非空)的字符序列。注意:由于对 word 长度的限制比较宽松,答案可能超过有符号 32 位整数的范围。计算时需当心。示例 1:输入:word = “aba”输出:6解释:所有子字符串是:“a”、“ab”、“aba”、“b”、“ba” 和 “a”。

2022-09-10 17:05:26 121

原创 Leetcode-LCP 25. 古董键盘

小扣随机按了 n 次按键,请返回小扣总共有可能按出多少种内容。由于数字较大,最终答案需要对 1000000007 (1e9 + 7) 取模。小扣在秋日市集购买了一个古董键盘。由于古董键盘年久失修,键盘上只有 26 个字母 a~z 可以按下,且每个字母最多仅能被按 k 次。LCP 25. 古董键盘。

2022-09-10 10:39:28 526

原创 LeetCode力扣每日一题1217. 玩筹码

有 n 个筹码。第 i 个筹码的位置是 position[i] 。我们需要把所有筹码移到同一个位置。在一步中,我们可以将第 i 个筹码的位置从 position[i] 改变为:position[i] + 2 或 position[i] - 2 ,此时 cost = 0position[i] + 1 或 position[i] - 1 ,此时 cost = 1返回将所有筹码移动到同一位置上所需要的 最小代价 。示例 1:示例 2:示例 3:提示:...

2022-07-09 18:04:51 159

原创 LeetCode1493. 删掉一个元素以后全为 1 的最长子数组

给你一个二进制数组 nums ,你需要从中删掉一个元素。请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。如果不存在这样的子数组,请返回 0 。提示 1:示例 2:示例 3:提示:...

2022-07-04 17:32:39 289

原创 (LeetCode)剑指 Offer II 015. 字符串中的所有变位词

给定两个字符串 s 和 p,找到 s 中所有 p 的 变位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。变位词 指字母相同,但排列不同的字符串。示例 1:示例 2:提示:题解滑动窗口滑动窗口模板说明:https://labuladong.github.io/algo/2/19/26/...

2022-07-04 16:13:39 63

原创 LeetCode654. 最大二叉树

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建:创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。返回 nums 构建的 最大二叉树 。示例 1:示例 2:提示:...

2022-07-01 16:21:50 79

原创 LeetCode力扣每日一题241. 为运算表达式设计优先级

给你一个由数字和运算符组成的字符串 expression ,按不同优先级组合数字和运算符,计算并返回所有可能组合的结果。你可以 按任意顺序 返回答案。生成的测试用例满足其对应输出值符合 32 位整数范围,不同结果的数量不超过 104 。示例 1:示例 2:题解:...

2022-07-01 15:27:27 99

原创 LeetCode力扣每日一题1175. 质数排列

请你帮忙给从 1 到 n 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。让我们一起来回顾一下「质数」:质数一定是大于 1 的,并且不能用两个小于它的正整数的乘积来表示。由于答案可能会很大,所以请你返回答案 模 mod 10^9 + 7 之后的结果即可。示例 1:示例 2:提示:思路质数之间位置可以互换,非质数和非质数之间也可以互换若质数有x个,则有x!种排列;非质数有y个,则有y!中排列;则共有x!*y!种排列注意每一步计算

2022-06-30 14:38:35 77

原创 LeetCode785. 判断二分图

存在一个 无向图 ,图中有 n 个节点。其中每个节点都有一个介于 0 到 n - 1 之间的唯一编号。给你一个二维数组 graph ,其中 graph[u] 是一个节点数组,由节点 u 的邻接节点组成。形式上,对于 graph[u] 中的每个 v ,都存在一条位于节点 u 和节点 v 之间的无向边。该无向图同时具有以下属性:1. 不存在自环(graph[u] 不包含 u)。2. 不存在平行边(graph[u] 不包含重复值)。3. 如果 v 在 graph[u] 内,那么 u 也应该在 graph[v

2022-03-14 14:59:09 179

原创 【Leetcode竞赛杯】LCP 03. 机器人大冒险

力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种:U: 向y轴正方向移动一格R: 向x轴正方向移动一格。不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁。给定终点坐标(x, y),返回机器人能否完好地到达终点。如果能,返回true;否则返回false。示例 1:输入:command = "URR", obstacles =

2022-03-12 17:03:38 187

原创 剑指 Offer II 065. 最短的单词编码

单词数组 words 的 有效编码 由任意助记字符串 s 和下标数组 indices 组成,且满足:words.length == indices.length助记字符串 s 以 ‘#’ 字符结尾对于每个下标 indices[i] ,s 的一个从 indices[i] 开始、到下一个 ‘#’ 字符结束(但不包括 ‘#’)的 子字符串 恰好与 words[i] 相等给定一个单词数组 words ,返回成功对 words 进行编码的最小助记字符串 s 的长度 。示例 1:输入:words = ["t

2022-01-30 16:21:45 824

原创 字典树习题模板C++代码

适用于单词由26个小写英文字母组成的情况,具体按题意稍作修改。const int TRIE_NODE_SIZE = 26;// 字典树节点class TrieNode { TrieNode* next[TRIE_NODE_SIZE]; bool isEnd; TrieNode() { for (int i = 0; i < TRIE_NODE_SIZE; ++i) { next[i] = nullptr; }

2022-01-30 15:40:29 1046

原创 leetcode 677. 键值映射

实现一个 MapSum 类,支持两个方法,insert 和 sum:MapSum() 初始化 MapSum 对象void insert(String key, int val) 插入 key-val 键值对,字符串表示键 key ,整数表示值 val 。如果键 key 已经存在,那么原来的键值对将被替代成新的键值对。int sum(string prefix) 返回所有以该前缀 prefix 开头的键 key 的值的总和。示例:输入:["MapSum", "insert", "sum", "in

2022-01-30 11:13:59 328

原创 剑指 Offer II 063. 替换单词

在英语中,有一个叫做 词根(root) 的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。现在,给定一个由许多词根组成的词典和一个句子,需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。需要输出替换之后的句子。示例 1:输入:dictionary = ["cat","bat","rat"], sentence = "t

2022-01-29 17:03:38 81

原创 leetcode 面试题 16.02. 单词频率

设计一个方法,找出任意指定单词在一本书中的出现频率。你的实现应该支持如下操作:WordsFrequency(book)构造函数,参数为字符串数组构成的一本书get(word)查询指定单词在书中出现的频率示例:WordsFrequency wordsFrequency = new WordsFrequency({"i", "have", "an", "apple", "he", "have", "a", "pen"});wordsFrequency.get("you"); //返回0,"you"没

2022-01-29 16:25:22 132 1

原创 leetcode 208. 实现 Trie (前缀树)

Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。请你实现 Trie 类:Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean startsWith(S

2022-01-29 15:28:34 119

原创 Leetcode 139. 单词拆分

给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true示例 2:输入: s = "applepenapple", wordDict = ["apple", "pen"]输出: true解释: 返回 true 因为 "applepenapple

2022-01-22 15:52:00 97

原创 力扣杯-竞赛合集LCP 01. 猜数字

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。示例 1:输入:guess = [1,2,3], answer = [1,2,3]输出:3解释:小A 每次都猜对了。示例 2:输入:guess = [2,2,3], answer = [3,2,1]输出

2022-01-08 17:33:20 1653

原创 力扣杯-竞赛合集-LCP 02. 分式化简

有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗?连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。输入的cont代表连分数的系数(cont[0]代表上图的a0,以此类推)。返回一个长度为2的数组[n, m],使得连分数的值等于n / m,且n, m最大公约数为1。示例 1:输入:cont = [3, 2, 0, 2]输出:[13, 4]解释:原连分数等价于3 + (1 / (2 + (1 / (0 + 1 / 2))))。注意[26, 8], [-13, -4

2022-01-08 17:27:37 89

原创 1489. 找到最小生成树里的关键边和伪关键边

给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1 ,同时还有一个数组 edges ,其中 edges[i] = [fromi, toi, weighti] 表示在 fromi 和 toi 节点之间有一条带权无向边。最小生成树 (MST) 是给定图中边的一个子集,它连接了所有节点且没有环,而且这些边的权值和最小。请你找到给定图中最小生成树的所有关键边和伪关键边。如果从图中删去某条边,会导致最小生成树的权值和增加,那么我们就说它是一条关键边。伪关键边则是可能会出现在某些最小生成树中但不会出现在所

2021-12-28 19:23:49 91

原创 1001 Battle Over Cities - Hard Version (35 分) (最小生成树之Prim和Kruskal算法应用)

It is vitally important to have all the cities connected by highways in a war. If a city is conquered by the enemy, all the highways from/toward that city will be closed. To keep the rest of the cities connected, we must repair some highways with the minim

2021-12-27 17:54:05 428

原创 1584. 连接所有点的最小费用 (Prim算法和Kruskal算法学习)

给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。示例 1:输入:points = [[0,0],[2,2],[3,10],[5,2],[7,0]]输出:20解释:我

2021-12-25 19:40:57 620

原创 使用sizeof()计算结构体大小

下面代码的输出结果是:#include <iostream> using namespace std; #pragma pack(4) struct T{ char a; short b; char c; }; #pragma pack() int main() { cout << sizeof(T) << endl; return 0; }A. 4 B. 5 C. 8

2021-09-09 11:20:48 11122 5

原创 二叉树遍历

前序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr).

2021-05-20 18:04:27 66

原创 华声医疗笔试题

华声医疗笔试题时间:2021-5-18-20:00单选题1道支持随机插入和删除的数据结构?A.数组和链表B.链表和哈希表C.哈希表和队列D.队列和堆栈E.堆栈和双向队列F.双向队列和数组填空题2道内存中构造了多少个类对象 (有引用,有指针,有new,有数组…)求tint m[3][3] = {0,1,2,0,1,2,0,1,2},i,j,t=1;for(int i=0; i<3; ++i) for(int j=i; j<=i; ++j) t += m[i][

2021-05-18 21:04:35 490

原创 进制转换

题目描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子https://www.nowcoder.com/discuss/276处理多组输入的问题。输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。示例1输入0xA0xAA输出10170code#include "bits/stdc++.h"using namespace std;int hex2dec(str

2021-04-22 18:12:59 95

原创 华为机试题:拆分自然数

题目描述一个 0-1000 的整数,拆解为一个(本身)或多个连续自然数的和,按照自然数的个数从少到多输出各个方案 input = solution,方案内的自然数按照从小到大排列链接:牛客网code其实就是数学题:若一个数n等于连续多个自然数之和,则由等差数列(a1+an)*h/2==n,以及an-a1==n-1,可解得a1=(n*2/h-h+1)/2和an=a1+h-1(也就是该连续自然数的第一个数和最后一个数)因为除法会带来误差,因此验证一下(a1+an)*h==n*2即可(注:算

2021-04-22 04:43:12 449

原创 字符串比较

字符串比较题⽬描述:给定字符串 A , B 和正整数 V , A 的⻓长度与 B 的⻓长度相等,请计算 A 满⾜如下条件的最⼤ 连续⼦串的⻓长度: 1、该连续⼦串在 A 和 B 中的位置和⻓长度均相同。 2、该连续⼦串 |A[i]-B[i]| 之和⼩于等于 V ,其中 |A[i]-B[i]| 表示两个字⺟ ASCII 码之差的绝对值。 输⼊描述: 输⼊为三⾏: 第⼀⾏为字符串 A ,仅包含⼩写字符, 。 第⼀⾏为字符串 B ,仅包含⼩写字符, 。 第⼀⾏为正整数 V , 。输出描述:字符串最⼤连续⼦

2021-04-22 04:12:01 2977 1

原创 报数游戏

报数游戏题⽬描述:100个⼈围成⼀圈,每个⼈有⼀个编码,编号从1开始到100,他们从1开始⼀次报数,报到为 M 的⼈⾃动退出圈圈,然后下⼀个⼈接着从1开始报数,直到剩余的⼈数⼩于 M 。请问最后剩 余的⼈在原先的编号为多少?输⼊描述:输⼊⼀个整数参数 M输出描述:如果输⼊参数 M ⼩于等于1或者⼤于等于100,输出 “ ERROR! ”;否则按照原先的编号从⼩到 ⼤的顺序,以英⽂逗号分隔输出编号字符串。输⼊:34输出:58,9134,45,97 code看起来蛮简单的一道题

2021-04-22 03:53:40 485

原创 找终点

找终点题⽬描述:给定⼀个正整数数组,设为 nums ,最⼤为100个成员,求从第⼀个成员开始,正好⾛到数组 最后⼀个成员,所使⽤的最少步骤数。 要求: 1、第⼀步必须从第⼀元素开始,且:1、<=第⼀步的步⻓长 <= len/2 ;( len 为数组的⻓长度,需 要⾃⾏解析)。2、从第⼆步开始,只能以所在成员的数字⾛相应的步数,不能多也不能少,如果⽬标不可达 返回-1,只输出最少的步骤数量。3、只能向数组的尾部⾛,不能往回⾛。输⼊描述:由正整数组成的数组,以空格分隔,数组⻓长度⼩于1

2021-04-22 03:05:50 1559

Tomcar ROOT文件夹(包含全部内容)

在安装tomcat免安装版时,遇到Tomcat正常启动了,访问的页面却是空白页,即使修改了端口号也还是空白页,这很有可能是tomcat的webapps目录下没有ROOT文件或者ROOT文件里的内容不全。 解决办法:下载ROOT文件并粘贴或覆盖到webapps目录下

2020-06-05

空空如也

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

TA关注的人

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