leetcode 1187. 使数组严格递增
题目描述leetcode1187. 使数组严格递增
给你两个整数数组 arr1 和 arr2,返回使 arr1 严格递增所需要的最小「操作」数(可能为 0)。
每一步「操作」中,你可以分别从 arr1 和 arr2 中各选出一个索引,分别为 i 和 j,0 <= i < arr1.length 和 0 <= j < arr2.length,然后进行赋值运算 arr1[i] = arr2[j]。
如果无法让 arr1 严格递增,请返回 -1。
示例 1:
输入:arr1 = [1,5,3,6,7], arr2 = [1,3,2,4]
输出:1
解释:用 2 来替换 5,之后 arr1 = [1, 2, 3, 6, 7]。
示例 2:
输入:arr1 = [1,5,3,6,7], arr2 = [4,3,1]
输出:2
解释:用 3 来替换 5,然后用 4 来替换 3,得到 arr1 = [1, 3, 4, 6, 7] ...
离散优化算法作业——基础算法
0b3759d9e8fa7c550b2e9c1c63a04bddab39a5825c311a71b1167835649ec93f06aae1ccadfc57b6c6b77dd0228b973ecaa7dd1a4463a72b3d69b5e61b7f777422e3a562948dc5095ebc4f10a201dd9d64205977d3633e0f1a90d12c21aebbe432667f691ea5d382cd5d986fa6a1f8aae11e5ae96c42eb2ce30b03fb374ebcaeb99380cdc4f89f06b62a8e1b255767fb02190c5582b22abc5b0e075b384a3388647cf44133ccaeb57d04a0f9a9a060444cf95f3de0fafb4701e528f9c371090067fd27efc38c46657bda89059d615c2b087e98e7a363541869cb067e7c66c75b9e2279dad524634c35e49510bdbdff3e8dd83467c774da53a ...
leetcode 2594. 修车的最少时间
题目描述leetcode2594. 修车的最少时间
给你一个整数数组 ranks ,表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。
同时给你一个整数 cars ,表示总共需要修理的汽车数目。
请你返回修理所有汽车 最少 需要多少时间。
注意:所有机械工可以同时修理汽车。
示例 1:
输入:ranks = [4,2,3,1], cars = 10
输出:16
解释:
- 第一位机械工修 2 辆车,需要 4 * 2 * 2 = 16 分钟。
- 第二位机械工修 2 辆车,需要 2 * 2 * 2 = 8 分钟。
- 第三位机械工修 2 辆车,需要 3 * 2 * 2 = 12 分钟。
- 第四位机械工修 4 辆车,需要 1 * 4 * 4 = 16 分钟。
16 分钟是修理完所有车需要的最少时间。
示例 2:
输入:ranks = [5,1, ...
leetcode 6366. 在网格图中访问一个格子的最少时间
题目描述leetcode 6366. 在网格图中访问一个格子的最少时间
给你一个 m x n 的矩阵 grid ,每个元素都为 非负 整数,其中 grid[row][col] 表示可以访问格子 (row, col) 的 最早 时间。也就是说当你访问格子 (row, col) 时,最少已经经过的时间为 grid[row][col] 。
你从 最左上角 出发,出发时刻为 0 ,你必须一直移动到上下左右相邻四个格子中的 任意 一个格子(即不能停留在格子上)。每次移动都需要花费 1 单位时间。
请你返回 最早 到达右下角格子的时间,如果你无法到达右下角的格子,请你返回 -1 。
示例 1:
输入:grid = [[0,1,3,2],[5,1,2,5],[4,3,8,6]]
输出:7
解释:一条可行的路径为:
- 时刻 t = 0 ,我们在格子 (0,0) 。
- 时刻 ...
leetcode 1798. 你能构造出连续值的最大数目
题目描述leetcode1798. 你能构造出连续值的最大数目
给你一个长度为 n 的整数数组 coins ,它代表你拥有的 n 个硬币。第 i 个硬币的值为 coins[i] 。如果你从这些硬币中选出一部分硬币,它们的和为 x ,那么称,你可以 构造 出 x 。
请返回从 0 开始(包括 0 ),你最多能 构造 出多少个连续整数。
你可能有多个相同值的硬币。
示例 1:
输入:coins = [1,3]
输出:2
解释:你可以得到以下这些值:
- 0:什么都不取 []
- 1:取 [1]
从 0 开始,你可以构造出 2 个连续整数。
示例 2:
输入:coins = [1,1,1,4]
输出:8
解释:你可以得到以下这些值:
- 0:什么都不取 []
- 1:取 [1]
- 2:取 [1,1]
- 3:取 [1,1,1]
- 4:取 [4]
- 5:取 [4, ...
QQ机器人DDBOT
搭建QQ机器人DDBOT最近在水群的时候看到一个机器人,可以推送直播、动态通知,还有一些自定义命令。感觉挺好玩的,正好云服务器闲着也是闲着(目前只跑了网站和code-server,没什么压力),索性搭个机器人玩玩。
下载与安装DDBOT的github页面:Sora233/DDBOT: 一个基于MiraiGO的QQ群推送框架。这个机器人是拆包即用的,所以完全不懂代码也没事,releases如下图,下载与机器对应的最新版本即可,比如在windows上就下载DDBOT-v1.0.9.2-windows-amd64.zip,我是搭在阿里云的CentOS上,所以下载DDBOT-v1.0.9.2-linux-amd64.tar.gz,可以在本地下载然后拖到云服务器上去(需要vscode页面),也可以直接wget,不过由于github的屏蔽问题,为了加快下载速度,最好找一个镜像站,网上一搜就有。
下载完后得到一个.tar.gz文件,这是一个压缩包,通过tar -zxvf 文件解压,得到一个可执行文件DDBOT,将它放到一个单独的文件夹中,运行即可。
首次运行结果如下图:
进行扫码登录。不过如果是在 ...
运筹学I期末编程解题报告
期末编程报告第一次作业第6题
建模设x_{ij}为产品Q_i中原料P_j的含量,线性规划模型如下:
\small \begin{aligned}
max\ z=&2*(x_{11}+x_{12}+x_{13})+3*(x_{21}+x_{22}+x_{23})+2.3*(x_{31}+x_{32}+x_{33})\\
&-1.7*(x_{11}+x_{21}+x_{31})-1.5*(x_{12}+x_{22}+x_{32})-1.2*(x_{13}+x_{23}+x_{33})\\
=&0.3x_{11}+0.5x_{12}+0.8x_{13}+1.3x_{21}+1.5x_{22}+1.8x_{23}+0.6x_{31}+0.8x_{32}+1.1x_{33}
\end{aligned}
\small s.t.\begin{cases}
x_{11}+x_{21}+x_{31}\leq1500\\
x_{12}+x_{22}+x_{32}\leq1000\\
x_{13}+x_{23}+x_{33}\leq2000\\
x_{11}\geq0.15*(x_{11}+x_{12}+ ...
leetcode 2514. 统计同位异构字符串数目
题目描述leetcode 2514. 统计同位异构字符串数目
给你一个字符串 s ,它包含一个或者多个单词。单词之间用单个空格 ' ' 隔开。
如果字符串 t 中第 i 个单词是 s 中第 i 个单词的一个 排列 ,那么我们称字符串 t 是字符串 s 的同位异构字符串。
比方说,"acb dfe" 是 "abc def" 的同位异构字符串,但是 "def cab" 和 "adc bef" 不是。
请你返回 s 的同位异构字符串的数目,由于答案可能很大,请你将它对 109 + 7 取余 后返回。
示例 1:
输入:s = "too hot"
输出:18
解释:输入字符串的一些同位异构字符串为 "too hot" ,"oot hot" ,"oto toh" ,"too toh" 以及 "too oht" 。 ...
总算在2022年拿到了心心念念的蓝牌子
竞赛分数更新了,终于拿到了Guardian。🥳🥳🥳八月三日拿到了Knight,当时也发帖留念了——刷题四月,用Knight为我的大一画上句号,那时觉得Guardian还很遥远,没想到一个学期过去,终于在2023年到来之前拿到了蓝牌子。
这五个月里有什么进步呢?
在算法上,主要就是系统地学习了一遍数据结构与算法。之前是遇到一道题不会,就去学那种算法,效率终究是比较低,而且没有形成完整的知识框架。这学期跟着老师学数据结构,从线性表、栈、队列学到树、图,有了比较完整的认识,在学习的过程中也把一些总结放到我的个人博客上。同时,也学到了很多新的算法,比如KMP算法、最小生成树、最短路、各种排序、并查集、贪心……这些稍难一点的算法可能就是Knight与Guardian之间的一些区别。当然,题量还是最关键的,拿到Knight时我通过了316题,而今天,已经有692题了,量变达到质变果真不假。
下学期好像就没有算法课了,希望还会坚持做下去leetcode。大家一起加油↖(^ω^)↗
数据结构与算法Week11&12——图
图与相关问题这两周学习了图,和一些图相关的问题。
基本概念图是一种非线性结构,与树相比,它可以是非连通的,也可以是有环的,所以图的问题要更为复杂。
图有很多术语,这里就不一一列举了,图的基本概念 - songguojun - 博客园这篇文章写得比较全面,可以去看看。
表示方法比较常用的有两种——邻接矩阵表示法和邻接表表示法。
邻接矩阵应当明确,我们要保存一张图,实际上就是要保存它的顶点和边,在不存在孤立点时,就相当于保存所有的边。而每两个顶点之间都可能有边。所以我们用一个二维矩阵G[n][n]来记录边的情况。G[i][j]=true代表有一条从i指向j的边,将G称为邻接矩阵。
邻接矩阵法的好处就是简单、直观,可以在O(1)的时间内检查两个顶点之间是否有边以及对边进行增删,而缺点就是空间浪费很大(尤其是对于稀疏图),且不易于增删节点。
邻接表邻接表表示法,是对每一个节点记录它指向的节点,每个节点指向的节点数目各异,所以不能用静态数组保存,在C语言中要用链表或者动态数组,而C++中则可以直接用vector,保存为vector<vector<int>> G(n),将G ...