题库
文章平均质量分 85
Rnan-prince
知是行之始,行是知之成([email protected])
展开
-
LeetCode-滑动窗口的单调队列应用
1696. 跳跃游戏 VI难度中等31给你一个下标从0开始的整数数组nums和一个整数k。一开始你在下标0处。每一步,你最多可以往前跳k步,但你不能跳出数组的边界。也就是说,你可以从下标i跳到[i + 1, min(n - 1, i + k)]包含两个端点的任意位置。你的目标是到达数组最后一个位置(下标为n - 1),你的得分为经过的所有数字之和。请你返回你能得到的最大得分。示例 1:输入:nums = [1,-1,-2,4,-7,...原创 2021-02-15 11:55:41 · 332 阅读 · 0 评论 -
LeetCode-1713-最长递增子序列应用
1713. 得到子序列的最少操作次数给你一个数组target,包含若干 互不相同的整数,以及另一个整数数组arr,arr可能 包含重复元素。每一次操作中,你可以在 arr的任意位置插入任一整数。比方说,如果arr = [1,4,1,2],那么你可以在中间添加 3得到[1,4,3,1,2]。你可以在数组最开始或最后面添加整数。请你返回 最少操作次数,使得target成为arr的一个子序列。一个数组的 子序列指的是删除原数组的某些元素(可能一个元素都不删除...原创 2021-02-15 11:28:13 · 276 阅读 · 0 评论 -
字典树Trie
字典树又名前缀树(Prefix Tree)根节点不包含字符,除根节点外每一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相同。Trie(前缀树) 的模板:.新建一个 TrieNode 的 class 用于表示 Trie 中的节点,包含 children 和 is_word 两个属性class ...原创 2020-03-24 00:46:33 · 861 阅读 · 0 评论 -
LeetCode-IPO|最低加油次数-堆的应用
题目:假设 力扣(LeetCode)即将开始其 IPO。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给定若干个项目。对于每个项目 i,它都有一个纯利润 Pi,并且需要最小的资本 Ci 来启动相应的项目。最初,你有 W 资本。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。总而言之,从给定项目中选择最多原创 2020-05-16 16:44:58 · 278 阅读 · 0 评论 -
LeetCode-打家劫舍-动态规划
1、打家劫舍-你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入原创 2020-05-16 16:03:18 · 237 阅读 · 0 评论 -
LeetCode-路径总和-多种类型
1、路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 ...原创 2020-04-12 20:25:26 · 173 阅读 · 0 评论 -
卡特兰数&不同的二叉搜索树
什么是卡特兰数?卡特兰数是组合数学中一个常出现在各种计数问题中出现的数列。其公式为 :c(n)=c(2)*c(n-1)+c(3)*c(n-2)+...c(n-1)*c(2)。假设n个节点存在令G(n)的从1到n可以形成二叉排序树个数 令f(i)为以i为根的二叉搜索树的个数即有:G(n) = f(1) + f(2) + f(3) + f(4) + ... + f(n)n为根节点,...原创 2020-04-05 22:24:24 · 1359 阅读 · 0 评论 -
Rabin Karp算法 & 实现 strStr() 函数
实现strStr()函数给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "...原创 2020-04-05 20:27:07 · 287 阅读 · 0 评论 -
贪心法&跳跃游戏
1、跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。来源:力扣(LeetCode)链接:https://leetco...原创 2020-03-10 22:13:07 · 321 阅读 · 2 评论 -
Hierholzer算法&重新安排行程
1、Hierholzer算法欧拉迹是指一条包含图中所有边的一条路径,该路径中所有的边会且仅会出现一次。一个无向图中包含欧拉迹,当且仅当下面两条性质同时满足:图是连通的 图中每个顶点的度均为偶数而一个有向图包含欧拉迹,当且仅当下面两条性质同时满足:图是连通的 图中每个顶点入度和出度相同Hierholzer算法用于在连通图寻找欧拉迹,其流程非常简单。从一个可能的起点出发,进...原创 2020-03-10 21:40:57 · 4126 阅读 · 0 评论 -
LeetCode-查找和最小的K对数字---多种解法
题目:查找和最小的K对数字给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。定义一对值(u,v),其中第一个元素来自nums1,第二个元素来自 nums2。找到和最小的 k 对数字(u1,v1), (u2,v2) ... (uk,vk)。例 :输入: nums1 = [1,7,11], nums2 = [2,4,6], k = 3输出: [1,...原创 2020-03-09 00:52:32 · 562 阅读 · 0 评论 -
前缀和应用总结
前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。1、一维前缀和公式:sum[i] = sum[i-1] + a[i]根据上述表达式我们可以以O(1)求出区间[i,j]的区间和 : sum = [0]*(n+1) # 一般+1为了边界计算方便 for i in range(1, n+1): sum[i] = sum[i-1] + nums[i...原创 2020-03-07 22:37:02 · 1168 阅读 · 0 评论 -
单调栈应用总结
单调栈单调递减栈:数据出栈的序列为单调递减序列 单调递增栈:数据出栈的序列为单调递增序列单调栈模板:for (遍历这个数组) if (栈空 || 栈顶元素>=或者<=当前比较元素): 入栈 else: while (栈不为空 && 栈顶元素<或者>当前元素) 栈顶元...原创 2020-03-07 21:26:26 · 505 阅读 · 0 评论 -
LeetCode-基本计算器类问题汇总(栈的应用)
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。栈的主要操作:push(),将新的元素压入栈顶,同时栈顶上升。pop(),将新的元素弹出栈顶,同时栈顶下降。empty(),栈是否为空。peek(),返回栈顶元素。python通常实现栈只需要list就可以,list.append(val), list.pop()、list[-1]支持操作...原创 2020-03-07 19:54:12 · 319 阅读 · 0 评论 -
LeetCode-矩阵中最大矩形 Maximal Rectangle(python)
题目:在一个M * N的矩阵中,所有的元素只有0和1, 找出只包含1的最大矩形。例如:图中是一个4 × 6的矩形,画出红色的是我们要找到的区域。https://blog.csdn.net/jiyanfeng1/article/details/8068676查找最大矩形,所以它一定是以 某个行元素开始的,将要找到的某个矩形就转换成 一某一个行开始的最大矩形Histogram问题...原创 2018-08-25 09:17:11 · 3071 阅读 · 1 评论 -
LeetCode-滑动窗口类题汇总
def sliding_window(window_size, array): left, right = 0, 0 res = 0 while right < len(array): if condition: pass while n > window_size or n == window_s...原创 2020-02-29 18:50:41 · 1294 阅读 · 0 评论 -
LeetCode-单词类题目汇总
1. 拼写单词给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。假如你可以用chars中的『字母』(字符)拼写出 words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。注意:每次拼写时,chars 中的每个字母都只能用一次。返回词汇表words中你掌握的所有单词的 长度之和。示例 1:输入:words = ["c...原创 2020-02-29 02:05:02 · 462 阅读 · 0 评论 -
LeetCode-堆的应用---合并K个排序链表
23. 合并K个排序链表合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/...原创 2020-02-29 01:42:41 · 177 阅读 · 0 评论 -
LeetCode-栈的用法-接雨水(python)
【接雨水】给定n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6来源:力扣(LeetCode)链接:https:/...原创 2020-02-02 14:02:55 · 536 阅读 · 0 评论 -
区间处理-会议室 II(python)
leetcode 253 Meeting Rooms II输入一个二维数组,数组的每个元素表示会议的开始时间和结束时间,问总共需要多少个会议室?https://leetcode-cn.com/problems/meeting-rooms-ii/解法1:区间排序法把区间变成2个数组:start时间数组和end时间数组,并对两个数组排序。然后一个指针遍历start数组,另一个指针指向en...原创 2020-02-02 08:58:52 · 934 阅读 · 0 评论 -
SPFA 算法 & 网络延迟时间
SPFA(Shortest Path Faster Algorithm) 算法是Bellman-Ford算法的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE)。算法优点: 1.时间复杂度比普通的Dijkstra和Ford低。 2.能够计算有负权的图,...原创 2019-10-24 03:06:40 · 284 阅读 · 0 评论 -
2018校招笔试真题汇总(java/C++)
科大讯飞:2018秋招笔试科大讯飞java笔试试题https://www.nowcoder.com/discuss/67684?type=2&order=3&pos=13&page=0锐捷:2018秋招锐捷笔试试题https://www.nowcoder.com/discuss/67760?type=2&order=3&pos=8&pag...转载 2018-08-16 10:17:42 · 4997 阅读 · 0 评论 -
网易2019笔试题
1.苹果分堆 计算累加小组成员数,结合二分查找,复杂度O( min(n, mlogn) )package wangyi123;import java.util.Scanner;public class groupNum { public static void main(String[] args) { Scanner sc = new Scanner(System....原创 2018-08-19 13:14:52 · 8290 阅读 · 0 评论 -
贝壳2019笔试
1.教师占用//输入样例2//4//3 10//20 30//1 3//1 39//输出样例2//1//4//输入样例3//3//1 5//2 6//3 7//输出样例3//0//样例解释//样例1中删除 1,2 ,3社团中的任何一个都可以使得另外两个社团无冲突的使用教室//样例2中删除4以后【1,3】【3,10】【20,30】无冲突,若删除1,2,3...原创 2018-08-19 13:47:02 · 3445 阅读 · 2 评论 -
数据挖掘和机器学习20个面试问题
1.什么是数据标准化,为什么要进行数据标准化?1.1定义1.2为什么要做数据归一化?数据归一化后,损失函数变量前面的系数差距已不大,图像的等高面近似圆形,在梯度下降进行求解时能较快的收敛。 一些机器学习算法需要计算样本之间的距离(如欧氏距离),例如 KNN、K-means 等。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征1.3为什么要进行数据标准化?数据标准...原创 2018-08-26 22:46:28 · 1939 阅读 · 1 评论 -
途牛2019校招笔试-大数据
【不定项选择】本套试卷共一个部分,共20题,每题5分,总分100分。每题至少有1个正确选项,多选、少选或错选不得分。1.默认知识点多选题一般5分 得分0分MySQL 的binlog 日志格式不包含哪个A: A. StatementB: B. rowC: C. mixedD: D. mixedlevel正确答案:C2.默认知识点多选题一般5分 得分5分下面对HBase的...原创 2018-08-15 18:40:23 · 2519 阅读 · 2 评论 -
2019中兴笔试选择题
只记得这些,见谅!1)一个模块把数值作为参数传送给另一个模块,这种耦合方式称为()。A . 数据耦合B . 公共耦合C . 控制耦合D . 标记耦合参考答案:A 2)如果在通信信道上发送1字节所需时间为0.004ms,则该信道的数据传输速率是A)1MbpsB)2MbpsC)2.5MbpsD)4Mbps答案:B 3)GSM系统中,一个载波分...原创 2018-09-06 21:30:45 · 11012 阅读 · 0 评论 -
二叉树的递归
1.Minimum Depth of Binary Tree // 递归版,时间复杂度O(n),空间复杂度O(logn) private static int minDepth(TreeNode root) { if (root == null) return 0; return Math.min(minDepth(root.left), minDepth(root....原创 2019-09-26 23:35:13 · 337 阅读 · 0 评论 -
二叉树的遍历(java&python)
1.Binary Tree Preorder Traversaljava:使用栈,时间复杂度O(n),空间复杂度O(n)public static void preOrderRec(Node root){ ArrayList<Integer> result = new ArrayList<>(); Stack<TreeNode> s ...原创 2019-09-27 00:33:45 · 198 阅读 · 0 评论 -
华为公司面试新员工的有关计算机网络的题目和答案
一、华为公司面试新员工的有关计算机网络的题目和答案 RFC1918文件规定了保留作为局域网使用的私有地址: 10.0.0.0 - 10.255.255.255 (10/8 prefix) 172.16.0.0 - 172.31.255.255 ...转载 2018-08-13 08:31:24 · 11255 阅读 · 0 评论