随笔分类 -  [802]数据结构与算法

理论知识
摘要:二分专题 阅读全文
posted @ 2020-03-22 14:10 DarrenChan陈驰 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1. 数据流中的第K大元素 题目 设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。 你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流 阅读全文
posted @ 2019-09-20 15:48 DarrenChan陈驰 阅读(338) 评论(0) 推荐(0) 编辑
摘要:1. 验证回文字符串 题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama"输出: true示例 2: 输入: "race a ca 阅读全文
posted @ 2019-09-17 15:11 DarrenChan陈驰 阅读(305) 评论(0) 推荐(0) 编辑
摘要:题目 实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "l 阅读全文
posted @ 2019-09-05 21:37 DarrenChan陈驰 阅读(724) 评论(0) 推荐(0) 编辑
摘要:题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" 来源:力扣(LeetCode)链接:https://leetco 阅读全文
posted @ 2019-08-19 13:19 DarrenChan陈驰 阅读(438) 评论(0) 推荐(0) 编辑
摘要:两两交换链表中的节点 题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 来源:力扣(LeetCode)链接:https://leetcode- 阅读全文
posted @ 2019-08-11 19:03 DarrenChan陈驰 阅读(287) 评论(0) 推荐(0) 编辑
摘要:LeetCode 908:最小差值 I 描述 给定一个整数数组 A,对于每个整数 A[i],我们可以选择任意 x 满足 -K <= x <= K,并将 x 加到 A[i] 中。 在此过程之后,我们得到一些数组 B。 返回 B 的最大值和 B 的最小值之间可能存在的最小差值。 示例 1: 输入:A = 阅读全文
posted @ 2019-08-02 21:04 DarrenChan陈驰 阅读(1008) 评论(0) 推荐(0) 编辑
摘要:1. LeetCode 191 位1的个数 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 1: 输入:00000000000000000000000000001011输出:3解释:输入的二进制串 0000000000000000000 阅读全文
posted @ 2019-07-16 12:13 DarrenChan陈驰 阅读(223) 评论(0) 推荐(0) 编辑
摘要:题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2: 输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子 阅读全文
posted @ 2019-06-24 14:39 DarrenChan陈驰 阅读(541) 评论(0) 推荐(0) 编辑
摘要:题目描述: 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 说明: 如果你可以只使用 O(n) 的额外空 阅读全文
posted @ 2019-06-23 20:34 DarrenChan陈驰 阅读(346) 评论(0) 推荐(0) 编辑
摘要:最近有一个需求,主要内容如下: APP一般刷新一次,会返回6个Item(6可能会变),每个Item都要展示一个广告,其中每个Item会发送一个请求,返回的结果是一个广告数组,比如[ad1, ad2, ad3....],不同ad含有自己的eCPM值(数值),在同一个广告数组里面,不同ad的eCPM值可 阅读全文
posted @ 2019-03-20 22:31 DarrenChan陈驰 阅读(522) 评论(2) 推荐(0) 编辑
摘要:1. 买卖股票的最佳时机 问题描述 LeetCode 121。 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 示例 2: 思路 动态规划。 阅读全文
posted @ 2019-01-29 22:29 DarrenChan陈驰 阅读(391) 评论(0) 推荐(0) 编辑
摘要:题目描述 思路 这道题就是在说,由多个1组成的数是beautiful的,现在想求出r进制中的r,使得给出的数字转换成r进制,得到beautiful的数字,如果有多种方式转换,那么取1的个数最多的那种情况,也就是r最小的情况。 这道题其实就是10进制和r进制的转化,这里就不详述了,但是注意题目中的一点 阅读全文
posted @ 2019-01-24 20:09 DarrenChan陈驰 阅读(409) 评论(0) 推荐(0) 编辑
摘要:1. 最小的K个数 题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 思路 Java 中的PriorityQueue是一个基于优先级堆的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 阅读全文
posted @ 2019-01-22 21:09 DarrenChan陈驰 阅读(480) 评论(0) 推荐(0) 编辑
摘要:题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路 这道题最简单的思路就是排序,然后统计每个数字出现的次数,这样时间复杂度是 阅读全文
posted @ 2019-01-22 19:15 DarrenChan陈驰 阅读(386) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 因为是二叉搜索树,所以中序遍历就是有序的,这里采用非递归中序遍历,并通过前驱指针pre,进行转换。 代码 阅读全文
posted @ 2019-01-22 01:18 DarrenChan陈驰 阅读(190) 评论(0) 推荐(0) 编辑
摘要:题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 思路 遍历链表即可,注意null的判断。 代码 阅读全文
posted @ 2019-01-21 18:47 DarrenChan陈驰 阅读(139) 评论(2) 推荐(0) 编辑
摘要:题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路 若根节点相等,利用递归比较他们的子树是否相等,若根节点不相等,则利用递归分别在左右子树中查找。 代码 阅读全文
posted @ 2019-01-14 16:25 DarrenChan陈驰 阅读(189) 评论(0) 推荐(0) 编辑
摘要:1. 求1+2+3+...+n 题目描述 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路 短路求值,&&逻辑与,逻辑与有个短路特点,前面为假,后面不计算。不让用这些循环判断,只能用递归。 代码 2. 阅读全文
posted @ 2019-01-11 22:25 DarrenChan陈驰 阅读(362) 评论(0) 推荐(0) 编辑
摘要:题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任 阅读全文
posted @ 2019-01-11 22:03 DarrenChan陈驰 阅读(203) 评论(0) 推荐(0) 编辑

Live2D