- 博客(73)
- 资源 (1)
- 收藏
- 关注
原创 搜索引擎关键字智能提示实践
搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户使用体验。
2023-02-02 11:27:35 1024
原创 【每日一题】调整搜索二叉树中两个错误的节点
一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请找到这两个错误节点并返回。已知二叉树中所有节点的值都不一样,给定二叉树的头节点 head,返回一个长度为 2 的二叉树节点类型数组 errs,errs[0] 表示一个错误节点,errs[1] 表示另一个错误节点。
2022-11-16 23:24:16 402
原创 【每日一题】LFU 缓存
一个缓存结构需要实现如下功能:但是缓存最多放 K 条记录,如果新的 K + 1 条记录需要加入,就需要根据策略删掉一条记录,然后才能把新记录加入。这个策略为:在缓存结构的 K 条记录中,哪一个 key 从进入缓存结构的时刻开始,被调用 set 或者 get 次数最少,就删掉这个key 的记录;如果调用次数最少的 key 有多个,上次调用发送最早的 key 被删除。这个就是 LFU 缓存替换算法。实现这个结构,K 作为参数。
2022-11-15 20:59:24 738
原创 【每日一题】矩形重叠个数
平面内有 n 个矩形,第 i 个矩形的左下角坐标为(x1[i], y1[i]),右上角坐标为:(x2[i], y2[i])。如果两个或多个矩形有公共区域,则认为他们是相互重叠的(不考虑边界和角落)。请你计算出平面内重叠矩形数量最多的地方,有多少个矩形相互重叠?
2022-11-12 22:09:43 686
原创 【每日一题】线段重叠
一条直线上有 n 个线段,第 i 个线段的坐标为$(x_1[i],x_2[i])$。请你计算出直线上重叠线段数量最多的地方,有多少个线段相互重叠?
2022-11-12 00:02:33 639
原创 【每日一题】环形加油站
N 个加油站组成一个环形,给定两个长度都是 N 的非负数组 oil 和 dis(N > 1),oil[i] 表示第 i 个加油站存的油可以跑多少千米,dis[i] 代表第 i 个加油站到环中下一个加油站相隔多少千米。假设你有一辆邮箱足够大的车,初始时车里没有油。如果车从第 i 个加油站出发,最终可以回到这个加油站,那么第 i 个加油站就算良好出发点,否则就不算。请返回长度为 N 的 boolean 数组 res,res\[i] 代表第 i 个加油站是不是良好出发点。
2022-11-10 20:58:33 597
原创 【每日一题】正数分裂
title: 正数分裂tags: 每日一题 动态规划typora-root-url: ../../dongyifeng.github.io“给定一个正数 1,裂开的方法有一种:(1)给定一个正数 2,裂开的方法有一种:(1,1),(2)给定一个正数 3,裂开的方法有一种:(1,1,1),(1,2),(3)给定一个正数 4,裂开的方法有一种:(1,1,1,1),(1,1,2),(1,3),(2,2),(4)给定一个正数 n,求裂开的方法数。”亮点:斜率优化方案一:暴力递归f ( pr
2022-11-09 10:28:29 615
原创 【每日一题】包含所有字符的最小子串长度
“给定字符串 str1 和 str2 ,求 str1 的子串中含有 str2 所有字符的最小子串长度。【举例】str1 = “abcde” ,str2 = “ac“ 因为 ”abc“ 包含 str2 所有的字符,并且在满足这一条件的 str1 的所有子串中,”abc“ 是最短的,返回 3.str1 = “12345” ,str2 = “344“,最小包含子串不存在,返回 0。”分析:使用 left 和 right 维护一个滑动窗口。right 移动的时机:窗口没有包含 str2 。扩大窗
2022-11-08 00:27:06 434
原创 【每日一题】需要排序的最短子数组长度
“给定一个无序数组 arr,求出需要排序的最短子数组长度。【例如】arr=【1,5,3,4,2,6,7】返回 4,因为只有【5,3,4,2】需要排序。”分析:子数组一定是连续的,所以整个数组可以分为三部分,只有中间一部分是乱序的。我们需要找到乱序部分的起始位置和终止位置。首先我们分析一下这三部分的特征:因为有序1 和有序3 不需要排序,那么有序1排序后一定在最前边一段(数据最小的一段),同理有序3排在最后一段(数据最大的一段):有序1 < 乱序2 < 有序3那么:有序1 <
2022-11-07 22:28:50 383
原创 【每日一题】旋变字符串
“一个字符串可以分解成多种二叉树结构。如果 str 长度为 1 ,认为不可分解。如果 str 长度为 N(N > 1),左部分长度可 以为 1 ~ N - 1,剩下的为右部分的长度。左部分和右部分都可以按照同样的逻辑,继续分解。形成的所有结构都是 str 的二叉树结构。比如,字符串“abcd”,可以分解成一下五种结构:任何一个str的二叉树结构中,如果两个节点有共同的父节点,那么这两个节点可以交换位置,这两个节点叫作一个交换组。一个结构会有很多交换组,每个交换组都可以选择进行交换或者不交换
2022-11-05 00:40:12 924
原创 【每日一题】汉诺塔
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。”汉诺塔问题分三步:将 0 ~ n -1 号圆盘从 from 柱子移动到 other 柱子。将 n 号圆盘从 from 柱子移动到 to 柱子。将 0 ~ n - 1 号圆盘从 other 柱子移动到 to
2022-11-04 15:28:15 1289
原创 【每日一题】打爆气球
【每日一题】打爆气球给定一个数组 arr,代表一排有分数的气球。每打爆一个气球都能获得分数,假设打爆气球的分数为 X,获得分数的规则如下:如果被打爆气球的左边有没打爆的气球,找到离被打爆气球最近的气球,假设分数为 L;如果被打爆气球的右边有没有打爆的气球,找到离被打爆气球最近的气球,假设分数为 R。获得分数为 L * X * R如果被打爆气球的左边有没打爆的气球,找到离被打爆气球最近的气球,假设分数为 L;如果被打爆气球的右边所有气球都已经被打爆。获得分数为:L*X如果被打爆气球的左边所有气球都已经
2022-11-03 10:44:29 235
原创 【每日一题】子数组最大异或和
数组异或和的定义:把数组中所有数异或起来得到的值。给定一个整型数组:arr,其中可能有正、有负、有零,求其子数组的最大异或和
2022-11-02 12:58:52 584
原创 【每日一题】完美洗牌
给定一个长度为偶数的数组 arr,长度记为 2*N。前 N 个为左部分,后 N 个为右部分。arr 就可以表示为 【L1,L2,...,Ln,R1,R2,...,Rn】,请将数组调整成 【R1,L1,R2,L2,...,Ln,Rn】的样子。wiggle sort给出一个无序的数组,在原地将数组排列成符合以下规律:nums[0] = nums[2]
2022-10-28 13:05:58 1303
原创 【每日一题】搜索二叉树的最大拓扑结构
给定一棵二叉树的头节点 head,已知所有节点的值都不一样,返回其中最大的且符合搜索二叉树的最大拓扑结构的大小。拓扑结构:不是子树,只要能连起来的结构都算。
2022-10-27 13:39:26 996
原创 【每日一题】正数分裂方法数
给定一个正数 1,裂开的方法有一种:(1)给定一个正数 2,裂开的方法有一种:(1,1),(2)给定一个正数 3,裂开的方法有一种:(1,1,1),(1,2),(3)给定一个正数 4,裂开的方法有一种:(1,1,1,1),(1,1,2),(1,3),(2,2),(4)给定一个正数 n,求裂开的方法数。
2022-10-25 13:43:22 264
原创 【每日一题】最少货币数
给定数组 arr,arr 中所有的值都为正整数。每个值代表一张钱的面值,再给定一个整数 aim 代表要找的钱数,求组成 aim 的最少货币数。
2022-10-24 20:05:23 351
原创 【每日一题】回文串移除方案
给定一个字符串 str,能否从字符串中移除部分(0个或多个)字符使其变为回文串,此处空串认为是回文串,求多少移除方案。(注意:相同字符的由于的移除,认为不同的移除方案)
2022-10-22 11:43:38 492
原创 【每日一题】bool 表达式解析
给定一个只由 0(假)、1 (真)、&(逻辑与)、|(逻辑或)、^(s)五种字符组成的字符串 express,再给定一个布尔值 desired。返回 express 能有多少种组合方式,可以达到 desired 的结果。
2022-10-17 09:57:02 299
原创 [每日一题] 01背包问题
给定 n 种物品和一背包。物品 i 的重量是 $w_i$,其价值为$v_i$ ,背包的容量为 C。问应如何选择装入背包的物品,使得装入背包中物品的总价值最大? 对于一种物品,要么装入背包,要么不装。
2022-10-13 20:57:27 2512
原创 [每日一题] 按摩师
一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。f(n) 数组长度为 n 时,返回此时最长的分钟数。动态规划的模式:从左向右尝试。
2022-10-12 20:46:29 182
原创 【每日一题】整数拆分
两个正整数的和,并使这些整数的乘积最大化。返回你可以获得的最大乘积。假设 f ( k ) 表示 n = k 时,获得的最大乘积。在尝试 0 到 n 所有可能性后,去最大值。i = 1 尝试 k - i 是否保留。
2022-10-12 18:55:40 238
原创 【每日一题】换钱方法数三
现有 n1 + n2 种面值的硬币,其中前 n1 种为普通币,可以取任意枚,后 n2 种为纪念币,每种最多只能取一枚,每种硬币有一个面值,问能用多少种方法拼出 m 个面值?
2022-09-22 20:41:20 89
原创 【每日一题】换钱方法数二
给定数组 arr,arr 中所有的值都为正整数。每个值代表一种面值的货币,每种面值的货币只可使用一张,再给定一个整数 aim 代表要找的钱数,求换钱有多少种方法。
2022-09-22 20:39:17 97
原创 【每日一题】换钱方法数
给定数组 arr,arr 中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数 aim 代表要找的钱数,求换钱有多少种方法。
2022-09-22 20:26:10 283
原创 【每日一题】土豪打榜
CC 里面有一个土豪很喜欢一位女直播 kiki 唱歌,平时就经常给她点赞、送礼、私聊。最近 CC 直播平台在举行中秋之星直播唱歌比赛,假设一开始该女主播的初始人气值为 start,能够晋升下一轮人气需要刚好达到 end,土豪给主播增加人气可以采取一下三种方法1. 点赞;花费 x C币,人气 + 22. 送礼;花费 y C 币,人气 * 23. 私聊;花费 z C币,人气 - 2其中 end 远大于 start 且 end 为偶数,请写一个程序帮助土豪计算一下,最少花费多少 C 币就能帮助该主播 ki
2022-09-22 20:15:49 226
原创 二叉树的递归套路
前提:假设以 X 为头结点树型DP(Dynamic programming),满足最优子结构性质的问题,都可以用树型 DP 求解。
2022-09-22 18:31:06 290
原创 在两个排序数组中找到上中位数
给定两个有序数组 arr1 和 arr2 ,已知两个数组的长度都为 N,求两个数组中所有数的上中位数。【举例】总共有 8 个数,那么上中位数是第 4 小的数,所以返回 3总共有 6 个数,那么上中位数是第 3 小的数,所以返回 2【要求】时间复杂度为 O( log N ),额外空间复杂度 O(1)
2022-09-22 14:27:43 166
原创 Problem 16 Power digit sum
project euler Problem 16 Power digit sum215=327682^{15} = 32768 and the sum of its digits is 3 + 2 + 7 + 6 + 8 = 26.What is the sum of the digits of the number 210002^{1000}?
2017-07-26 12:08:30 498 2
集体智慧编程
2013-08-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人