自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 滑动窗口最大值

给你一个整数数组 numsnumsnums,有一个大小为 kkk 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 kkk 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6

2021-02-21 09:38:53 144

原创 绝对差不超过限制的最长连续子数组

给你一个整数数组 numsnumsnums ,和一个表示限制的整数 limitlimitlimit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limitlimitlimit 。如果不存在满足条件的子数组,则返回 000 。示例 1:输入:nums = [8,2,4,7], limit = 4输出:2 解释:所有子数组如下:[8] 最大绝对差 |8-8| = 0 <= 4.[8,2] 最大绝对差 |8-2| = 6 > 4. [8,2,4]

2021-02-21 08:32:27 289

原创 压缩编码

给定一段文字,已知单词 a1,a2,…,ana_1,a_2,…,a_na1​,a2​,…,an​ 出现的频率分别 t1,t2,…,tnt_1,t_2,…,t_nt1​,t2​,…,tn​。可以用 010101 串给这些单词编码,即将每个单词与一个 010101 串对应,使得任何一个单词的编码(对应的 010101 串)不是另一个单词编码的前缀,这种编码称为前缀码。使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为:L=a1的编码长度×t1+a2的编码长度

2021-02-21 08:22:26 656

原创 通信网络

某国的军队由 NNN 个部门组成,为了提高安全性,部门之间建立了 MMM 条通路,每条通路只能单向传递信息,即一条从部门 aaa 到部门 bbb 的通路只能由 aaa 向 bbb 传递信息。信息可以通过中转的方式进行传递,即如果 aaa 能将信息传递到 bbb,bbb 又能将信息传递到 ccc,则 aaa 能将信息传递到 ccc。一条信息可能通过多次中转最终到达目的地。由于保密工作做得很好,并不是所有部门之间都互相知道彼此的存在。只有当两个部门之间可以直接或间接传递信息时,他们才彼此知道对方的存在。

2021-02-20 09:08:25 168

原创 数组的度

给定一个非空且只包含非负数的整数数组 numsnumsnums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 numsnumsnums 中找到与 numsnumsnums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入:[1, 2, 2, 3, 1]输出:2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2

2021-02-20 08:51:36 162

原创 最大连续1的个数 III

给定一个由若干 000 和 111 组成的数组 AAA,我们最多可以将 KKK 个值从 000 变成 111 。返回仅包含 111 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10解释

2021-02-19 09:46:03 121

原创 网络延时

给定一个公司的网络,由 nnn 台交换机和 mmm 台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为 111 的交换机为根交换机,层级为 111。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加 111。所有的终端电脑都直接连接到交换机上。当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间传递消息、或者电脑与交换机之间传递消息、或者交换机与交换机之间传递消息最多需要多少步。输

2021-02-19 09:20:25 242 1

原创 最优配餐

栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。栋栋的连锁店所在的区域可以看成是一个 n×nn×nn×n 的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。方格图中的线表示可以行走的道路,相邻两个格点的距离为 111。栋栋要送餐必须走可以行走的道路,而且不能经过红色标注的点。送餐的主要成本体现在路上所花的时间,每一份餐每走一个单位的距离需要花费 111 块

2021-02-18 11:36:55 278

原创 K 连续位的最小翻转次数

在仅包含 000 和 111 的数组 AAA 中,一次 KKK 位翻转包括选择一个长度为 KKK 的(连续)子数组,同时将子数组中的每个 000 更改为 111,而每个 111更改为 000。返回所需的 KKK 位翻转的最小次数,以便数组没有值为 000 的元素。如果不可能,返回 −1-1−1。示例 1:输入:A = [0,1,0], K = 1输出:2解释:先翻转 A[0],然后翻转 A[2]。示例 2:输入:A = [1,1,0], K = 2输出:-1解释:无论我们怎样翻转大小为

2021-02-18 11:32:49 334 1

原创 有趣的数

我们把一个数称为有趣的,当且仅当:它的数字只包含 0,1,2,30,1,2,30,1,2,3,且这四个数字都出现过至少一次。所有的 000 都出现在所有的 111 之前,而所有的 222 都出现在所有的 333 之前。最高位数字不为 000。因此,符合我们定义的最小的有趣的数是 201320132013。除此以外,444 位的有趣的数还有两个:203120312031 和 230123012301。请计算恰好有 nnn 位的有趣的数的个数。由于答案可能非常大,只需要输出答案除以 109+7

2021-02-16 12:24:31 178

原创 机器人跳跃问题

机器人正在玩一个古老的基于DOSDOSDOS的游戏。游戏中有N+1N+1N+1座建筑——从000到NNN编号,从左到右排列。编号为0的建筑高度为000个单位,编号为 iii 的建筑高度为H(i)H(i)H(i)个单位。起初,机器人在编号为000的建筑处。每一步,它跳到下一个(右边)建筑。假设机器人在第kkk个建筑,且它现在的能量值是EEE,下一步它将跳到第k+1k+1k+1个建筑。如果H(k+1)>EH(k+1)>EH(k+1)>E,那么机器人就失去H(k+1)−EH(k+1)

2021-02-16 11:45:49 227

原创 Z字形扫描

在图像编码的算法中,需要将一个给定的方形矩阵进行 ZZZ 字形扫描(ZigzagScan)(Zigzag Scan)(ZigzagScan)。给定一个 n×nn×nn×n 的矩阵,ZZZ 字形扫描的过程如下图所示:对于下面的 4×44×44×4 的矩阵,1 5 3 93 7 5 69 4 6 47 3 1 3对其进行 ZZZ 字形扫描后得到长度为 161616 的序列:15397395473664131\quad5\quad 3\quad 9\quad 7\quad 3 \quad9\qu

2021-02-16 08:28:02 597

原创 杨辉三角 II

给定一个非负索引 kkk,其中 k≤33k ≤ 33k≤33,返回杨辉三角的第 kkk 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k)O(k)O(k) 空间复杂度吗?Cnm=Cnm−1×n−m+1mC_n^{m}=C_n^{m-1}\times\dfrac{n-m+1}{m}Cnm​=Cnm−1​×mn−m+1​typedef long long ll;class Solution {public:

2021-02-12 09:59:00 91 1

原创 K 个不同整数的子数组

给定一个正整数数组 AAA,如果 AAA 的某个子数组中不同整数的个数恰好为 KKK,则称 AAA 的这个连续、不一定不同的子数组为好子数组。(例如,[1,2,3,1,2][1,2,3,1,2][1,2,3,1,2] 中有 333 个不同的整数:1,21,21,2,以及 333。)返回 AAA 中好子数组的数目。示例 1:输入:A = [1,2,1,2,3], K = 2输出:7解释:恰好由 222 个不同整数组成的子数组:[1,2],[2,1],[1,2],[2,3],[1,2,1],[2,1

2021-02-10 14:21:27 217

原创 乌龟棋

小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。乌龟棋的棋盘只有一行,该行有 NNN 个格子,每个格子上一个分数(非负整数)。棋盘第 111 格是唯一的起点,第 NNN 格是终点,游戏要求玩家控制一个乌龟棋子从起点出发走到终点。乌龟棋中共有 MMM 张爬行卡片,分成 444 种不同的类型(MMM 张卡片中不一定包含所有 444 种类型的卡片),每种类型的卡片上分别标有1、2、3、41、2、3、41、2、3、4 四个数字之一,表示使用这种卡片后,乌龟棋子将向前爬行相应的格子数。游戏中,玩家每次需要从所

2021-02-10 12:51:09 1351

原创 鱼塘钓鱼

有 NNN 个鱼塘排成一排,每个鱼塘中有一定数量的鱼,例如:N=5N=5N=5 时,如下表:鱼塘编号12345第1分钟能钓到的鱼的数量(1…1000)101420169每钓鱼1分钟钓鱼数的减少量(1…100)24653当前鱼塘到下一个相邻鱼塘需要的时间(单位:分钟)3544即:在第 111 个鱼塘中钓鱼第 111 分钟内可钓到 101010 条鱼,第 222 分钟内只能钓到 888 条鱼,……,第 555 分钟以后再也钓不到鱼了。

2021-02-08 09:54:45 434

原创 最长湍流子数组

当 AAA 的子数组 A[i],A[i+1],...,A[j]A[i], A[i+1], ..., A[j]A[i],A[i+1],...,A[j] 满足下列条件时,我们称其为湍流子数组:若 i<=k<ji <= k < ji<=k<j,当 kkk 为奇数时, A[k]>A[k+1]A[k] > A[k+1]A[k]>A[k+1],且当 kkk 为偶数时,A[k]<A[k+1]A[k] < A[k+1]A[k]<A[k+1];或 若

2021-02-08 08:22:59 119

原创 关押罪犯

SSS 城现有两座监狱,一共关押着 NNN 名罪犯,编号分别为111~NNN。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为 ccc 的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为 ccc 的冲突事件。每年年末,警察局会将本年内监狱中的所有冲突事件按影响力从大到小排成一个列表,然后上报到 SSS 城 ZZZ 市长那里。

2021-02-07 13:50:43 116

原创 非递减数列

给你一个长度为 nnn 的整数数组,请你判断在 最多 改变 111 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中所有的 i(0<=i<=n−2)i (0 <= i <= n-2)i(0<=i<=n−2),总满足 nums[i]<=nums[i+1]nums[i] <= nums[i + 1]nums[i]<=nums[i+1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你

2021-02-07 13:16:30 340

原创 借教室

在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来nnn天的借教室信息,其中第iii天学校有rir_iri​个教室可供租借。共有mmm份订单,每份订单用三个正整数描述,分别为dj,sj,tjd_j,s_j,t_jdj​,sj​,tj​,表示某租借者需要从第sjs_jsj​天到第tjt_jtj​天租借教室(包括第sjs_js

2021-02-07 12:48:05 403

原创 数列

给定一个正整数kkk,把所有kkk的方幂及所有有限个互不相等的kkk的方幂之和构成一个递增的序列,例如,当k=3k=3k=3时,这个序列是:1,3,4,9,10,12,13,…1,3,4,9,10,12,13,…1,3,4,9,10,12,13,…该序列实际上就是:303^{0}30,313^131,30+313^0+3^130+31,323^232,30+323^0+3^230+32,31+323^1+3^231+32,30+31+323^0+3^1+3^230+31+32,…请你求出这个序列的第N

2021-02-06 09:57:12 211

原创 可获得的最大点数

几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPointscardPointscardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 kkk 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPointscardPointscardPoints 和整数 kkk,请你返回可以获得的最大点数。示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管

2021-02-06 08:53:34 245

原创 聪明的质监员

思路(二分,前缀和) O(nlogW)O(nlogW)O(nlogW)观察每个区间的值 Yi=(∑j1)∗(∑jvj),j∈[Li,Ri]Y_i=(\sum\limits_{j}1)∗(\sum\limits_j v_j),j∈[L_i,R_i]Yi​=(j∑​1)∗(j∑​vj​),j∈[Li​,Ri​]且wj≥Ww_j≥Wwj​≥W当 WWW 增大时,区间 [Li,Ri][L_i,R_i][Li​,Ri​] 中满足要求的 (wi,vi)(w_i,v_i)(wi​,vi​) 会减少,同时所有 vi.

2021-02-05 10:43:27 65

原创 尽可能使字符串相等

给你两个长度相同的字符串,sss 和 ttt。将 sss 中的第 iii 个字符变到 ttt 中的第 iii 个字符需要 ∣s[i]−t[i]∣|s[i] - t[i]|∣s[i]−t[i]∣ 的开销(开销可能为 000),也就是两个字符的 ASCIIASCIIASCII 码值的差的绝对值。用于变更字符串的最大预算是 maxCostmaxCostmaxCost。在转化字符串时,总开销应当小于等于该预算,这也意味着字符串的转化可能是不完全的。如果你可以将 sss 的子字符串转化为它在 ttt 中对应的子

2021-02-05 10:16:52 194

原创 旋转数组

给定一个数组,将数组中的元素向右移动 kkk 个位置,其中 kkk 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1)O(1)O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3

2021-02-04 17:26:54 64

原创 耍杂技的牛

农民约翰的NNN头奶牛(编号为1..N1..N1..N)计划逃跑并加入马戏团,为此它们决定练习表演杂技。奶牛们不是非常有创意,只提出了一个杂技表演:叠罗汉,表演时,奶牛们站在彼此的身上,形成一个高高的垂直堆叠。奶牛们正在试图找到自己在这个堆叠中应该所处的位置顺序。这NNN头奶牛中的每一头都有着自己的重量WiW_iWi​以及自己的强壮程度SiS_iSi​。一头牛支撑不住的可能性取决于它头上所有牛的总重量(不包括它自己)减去它的身体强壮程度的值,现在称该数值为风险值,风险值越大,这只牛撑不住的可能性越

2021-02-04 16:33:49 69

原创 滑动窗口中位数

中位数是有序序列最中间的那个数。如果序列的大小是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。例如:-[2,3,4][2,3,4][2,3,4],中位数是 333[2,3][2,3][2,3],中位数是 (2+3)/2=2.5(2 + 3) / 2 = 2.5(2+3)/2=2.5给你一个数组 numsnumsnums,有一个大小为 kkk 的窗口从最左端滑动到最右端。窗口中有 kkk 个数,每次窗口向右移动 111 位。你的任务是找出每次窗口移动后得到的新窗口中元素的中位数,并

2021-02-03 11:06:56 1739

原创 糖果传递

有nnn个小朋友坐成一圈,每人有a[i]a[i]a[i]个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为111。求使所有人获得均等糖果的最小代价。输入格式第一行输入一个正整数nnn,表示小朋友的个数。接下来nnn行,每行一个整数a[i]a[i]a[i],表示第i个小朋友初始得到的糖果的颗数。输出格式输出一个整数,表示最小代价。数据范围1≤n≤10000001≤n≤10000001≤n≤1000000数据保证一定有解。输入样例:41254输出样例:4先

2021-02-03 10:31:18 246

原创 替换后的最长重复字符

给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 kkk 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 kkk 不会超过 10410^4104。示例 1:输入:s = "ABAB", k = 2输出:4解释:用两个'A'替换为两个'B',反之亦然。示例 2:输入:s = "AABABBA", k = 1输出:4解释:将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。子串 "BBBB" 有最长重复

2021-02-02 09:30:58 295

原创 golang

安装golang下载安装包安装在cmd中输入go回车,有输出则说明安装正常一般安装的时候程序会自动添加,无需人工干预检查GOPATH可以在cmd中查看set GOPATH或者在"我的电脑"-“属性”-“高级”-"环境变量"中查看和添加正常go安装,会自动添加,我本机GOPATH=C:\Users\Administrator\go;安装gin接下来安装gin,框架文档介绍:go get -u github.com/gin-gonic/gin这时候开始

2021-02-01 20:33:38 254

原创 Guess the Array

Guess the Array分析:交互题;   首先由a[1]+a[2]a[1]+a[2]a[1]+a[2],a[1]+a[3]a[1]+a[3]a[1]+a[3],a[2]+a[3]a[2]+a[3]a[2]+a[3]即可解出a[1],a[2],a[3]a[1],a[2],a[3]a[1],a[2],a[3]:   后面a[i]=(a[i]+a[i−1])−a[i−1](i>=4)a[i]=(a[i]+a[i-1])-a[i-1](i>=4)a[i]=(a[i]+a[i−1])−a

2021-02-01 16:59:25 92

原创 ABBB

ABBB#include<bits/stdc++.h>using namespace std;string s;void solve() { cin >> s; int len = 0; for (int i = 0; i < s.size(); i++) { if (s[i] == 'A' || len == 0) { ++len; } else { --le

2021-02-01 16:54:19 219

原创 Belted Rooms

Belted Rooms题意:给出nnn个点,从000到n−1n-1n−1都有边相连,n−1n-1n−1与000也有边相连。每条边都有方向,>>>表示顺时针可达,<<<表示逆时针可达,−-−表示双向可达。问共有几个点可以离开之后又回到该点。思路:可能有的人会以为是图,其实就是个思维题。因为双向可达是万能的,所以我们应重点关注两种单向可达。如果只有一种方向的单向可达,那说明这是一个环,任意一个点都可以走一圈回到原点。如果两种方向都有的话,那说明只有双向可达

2021-02-01 16:52:18 166

原创 Box is Pull

Box is Pull题意类似于推箱子的拉箱子,每次只能拉动一个格子,只能拉直线,拉一格需要一秒。那对于给出的任意两个点,只要他们在一条直线上,时间就是这两点的距离。如果不在一条直线上,那最短的路线就是两条直线,先将箱子从起点拉到与重终点在一条直线上,然后拉箱子的人改变方向(改变方向需要走两个格子),然后拉到终点。答案也就是两点间的距离加二。#include <bits/stdc++.h>using namespace std;void solve() { int a,

2021-02-01 16:47:46 137

原创 加分二叉树

设一个nnn个节点的二叉树treetreetree的中序遍历为(1,2,3,…,n)(1,2,3,…,n)(1,2,3,…,n),其中数字1,2,3,…,n1,2,3,…,n1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第iii个节点的分数为did_idi​,treetreetree及它的每个子树都有一个加分,任一棵子树subtreesubtreesubtree(也包含tree本身)的加分计算方法如下:subtreesubtreesubtree的左子树的加分 × subtreesu

2021-02-01 16:42:07 148

原创 星空之夜

夜空深处,闪亮的星星以星群的形式出现在人们眼中,形态万千。一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。一个星群不能是一个更大星群的一部分。星群可能是相似的。如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。通常星群可能有 888 种朝向,如下图所示:现在,我们用一个二维 010101 矩阵来表示夜空,如果一个位置上的数字是 111,那么说明这个位置上有一个星星,否则这个位置上的数字应该是 000。给定一个夜空二维矩阵,请你将其中的所有星群

2021-02-01 16:15:56 102

原创 牛异或

农夫约翰在给他的奶牛们喂食时遇到了一个问题。他共有 NNN 头奶牛,编号 111∼NNN。每次喂食前,这 NNN 头奶牛会按照 111∼NNN 的顺序站成一排。此外,每头奶牛都被分配了一个可能不唯一的整数。那么所有被分配的整数就形成了一个长度为 NNN 的整数序列。请你在该整数序列中找出一个连续的非空子序列,使得子序列中元素的异或和能够最大。如果存在多个这样的序列,那么选择序列末端整数对应的奶牛编号更小的那个序列。如果仍然存在多个可选的序列,那么选择长度最短的那个序列。输入格式第一行包含整

2021-02-01 15:50:19 113

原创 K倍区间

给定一个长度为 NNN 的数列,A1,A2,…ANA_1,A_2,…A_NA1​,A2​,…AN​,如果其中一段连续的子序列 Ai,Ai+1,…AjA_i,A_{i+1},…A_jAi​,Ai+1​,…Aj​ 之和是 KKK 的倍数,我们就称这个区间 [i,j][i,j][i,j] 是 KKK 倍区间。你能求出数列中总共有多少个 KKK 倍区间吗?输入格式第一行包含两个整数 NNN 和 KKK。以下 NNN 行每行包含一个整数 AiA_iAi​。输出格式输出一个整数,代表 KKK 倍区间的数目。

2021-02-01 13:16:26 93

空空如也

空空如也

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

TA关注的人

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