自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python日期增减

【代码】python日期增减。

2023-01-10 18:32:21 340

原创 二维网格迁移

代码】二维网格迁移。

2022-07-20 22:40:41 156 1

原创 下一个更大元素 III

代码】下一个更大元素III。

2022-07-16 12:13:06 166

原创 粉刷房子(leetcode)

深度优先搜索和动态规划

2022-06-26 08:26:28 101

原创 串联所有单词的子串

采用散列表和动态规划,中间查找相同的字符串可以适当优化(我这里没优化但能够通过)。

2022-06-24 07:12:47 196

原创 关于破碎矩形区域按照均匀分布随即选点的问题

随机选点在游戏和统计中用的非常多,怎么利用伪随机算法在计算机中模拟现实中符合特定分布特征的点,则一般需要用到概率论中的知识进行建模,从古典概型到现代多样概率分布函数以及特征数,都可以成为建立符合要求的伪随机算法的工具。一生二二生三三生万物道法自然,构建符合特定分布的伪随机算法不是推倒重来,而是可以在均匀分布的伪随机算法基石之上堆彻出​鳞次栉比​的伪随机算法大厦。伪随机算法发展至今,已经发明出数种相对可靠的算法,比如在计算机程序语言中通常自带的LCG算法以及基于LCG扩展的MWC算法再到位运算LFSR算法然后

2022-06-09 12:32:39 228

原创 我的日程安排表 III

有序结合的思想,实际可以运用线段树解决能减少不少代码

2022-06-06 19:05:11 61

原创 状态压缩+减枝

这里自己能够想到的是状态压缩+剪纸以及回溯,至于动态规划个人直觉上有但是没有想出来。

2022-06-01 22:58:35 76

原创 leetcode笔记(剑指 Offer II 114. 外星文字典)

题目来自leetcode可以采用回溯代换数字,然后进行数字排序,也可以直接采用拓扑排序,回溯代换数字的代码结构要比拓扑排序的复杂且复杂度要高,不过针对数据量少的数据集还是可以用的。

2022-05-31 22:29:38 1180

原创 验证IP地址

有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中 0 <= xi <= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址, “192.168.01.1” 为无效IPv4地址; “192.168.1.00” 、 “[email protected]” 为无效IPv4地址。一个有效的IPv6地址 是一个格式为“x1:x2:x3:x4:x5:x6:x7:x8” 的IP地址,其中:1 <= xi.len

2022-05-29 10:58:33 1059

原创 环绕字符串中唯一的子字符串

一、问题把字符串 s 看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....".现在给定另一个字符串 p 。返回s 中唯一 的 p 的 非空子串的数量。输入: p = "cac"输出: 2解释: 字符串 s 中的字符串“cac”只有两个子串“a”、“c”。.来源:力扣(LeetCode)...

2022-05-25 22:45:24 85

原创 leetcode(为高尔夫比赛砍树)

求两点之间最短路径,个人平常用的最多的是floyd算法,算法相当简洁,写起来也方便,但是这里的格点比较多,不适合floyd,而对于dijkstra算法,当树接节点占满图后,直接退化成floyd算法,时间复杂度也变得不是很理想,这里用A* (求路径有各种各样的算法,有A*的变种,也有些对于实时度较高的甚至采用蚁群算法,这是个很复杂的领域,无人驾驶,导航,路由,加速器,都用到路径规划,但针对某一特定问题选择的算法都会不同。):var cutOffTree = function(forest) {...

2022-05-24 00:29:11 101

原创 数组中重复的数据

问题给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/find-all-duplicates-in-an-array代码var findDuplicates = fun

2022-05-08 20:11:46 384

原创 【leetcode】最小基因变化

题目基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 'A'、'C'、'G' 和 'T' 之一。假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。例如,"AACCGGTT" --> "AACCGGTA" 就是一次基因变化。另有一个基因库 bank 记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。给你两个基因序列 start 和 end ,以及一个基因库 bank ,请你找出

2022-05-07 14:05:02 1092

原创 乘积小于 K 的子数组

给你一个整数数组nums和一个整数k,请你返回子数组内所有元素的乘积严格小于k的连续子数组的数目。var numSubarrayProductLessThanK = function(nums, k) { var ans = 0; let start = 0; let end = 0; let count = 0; let cur_m = 1; while(end < nums.length) { if(nums[...

2022-05-06 06:41:27 193

原创 leetcode(点燃木棒)

一、问题二、分析 这个跟在图上找寻每个节点到各个节点之间的最短路径相同,可以利用弗洛伊德算法,不过时间复杂度过高,为此由于问题的特殊性可以采用BFS获得DFS + 记忆搜索,这里只写出用弗洛伊德算法写出的代码。另外就是棍子编号和端点编号的转换问题,这个可以自己去推导,我直接写上了。三、代码 /** * @param {number} height * @param {number} width * @param {number[]} indices * @return

2022-04-24 18:49:50 183

原创 leetcode(相邻字符不同的最长路径)

一种方法是中序遍历加上前序遍历构成两组字符串,然后找到的字符串中最长连续的不含相同字符的子字符串便是该树上最长的不同字符路径。

2022-04-21 22:36:09 555

原创 从给定原材料中找到所有可以做的菜【算法题】

二、一些思考最让人想到的就是拓扑排序,不过这种问题在高级语言中通常都可以直接用暴力的方法得到。另外,单纯就这道题的解决方法可以解决很多现实中的问题。比如餐厅原料订购与本餐厅菜谱之间的匹配问题,工厂生产中产品与原料的匹对问题,这些都是在日常后勤中所应用的,不过通常都会带上权重。尤其在原材料和产品都比较多的情况下,利用计算机解决可以提高工作效率。这些在仓库管理系统中也是常应用到的。仓库的职责通常来说就是采购、出料与产品入库,而当工厂生产产品多时,如何就当前生产计划以及现有原料库存量推算出预采购原料量..

2021-12-28 21:53:25 212

原创 算法不是套模板,而是具体问题具体对策

一、题目二、代码:/** * @param {string} street * @return {number} */var minimumBuckets = function(street) { let result = 0; let index = -1; let prev_index = index; street[-1] = 'o'; let shared = -1; while(true) { prev_i.

2021-12-18 17:14:42 320

原创 记一次leetcode绕弯弯

一、问题分析这道题目虽然是简单题,不过这有点像是脑筋急转弯,一不小心就会掉进坑里。如果按照常规思维,这道问题就只能枚举了,可是最终枚举的效果却是时间超时。但只要稍加思考此问题便能发现,既然是k个子序列,那么这k个子序列必然是这序列里的任意组合,那么可想而知一定存在着k个组合,而这k个组合分别是这个数组中前k大的数。那么问题就直接转换成求数组中前k个大的数了。第一种超时办法:/** * @param {number[]} nums * @param {number} k * ...

2021-12-16 01:12:59 3449

原创 js版dataquery,实现数据搜索<search.js>

github addressGitHub - 403f/searchjs: So short! So powerful!searchjsSo short! So powerful! So flexible! You can use the library to filter data easily. And it's very flexible,You can design the chain style which you want.And it's robust,you can change

2021-09-29 13:14:43 465

原创 php 数据提交数据表类型检查

由于项目需求同时不想直接用tp框架中的ORM而写的,对于运行在FPM模式下的php来说,采用ORM对web程序运行效率会产生显著的影响,一般情况下都是直接自己构建SQL语句以及建立表与表之间的关系。这几个函数只针对一般情况,对于类型检查那一块,可以自己进行相应的扩展。function checkDatabaseName( $name ) { if(!is_string($name)) { return false; } $bad_char_reg = "/(

2021-09-24 00:27:55 121

原创 记一次网吧leetcode

一、题目描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。二、代码/** * @param {string} a * @param {string} b * @return {string} */var addBinary = function(a, b) { let alen = a.length - 1; let blen = b.length - 1; let addn = 0;...

2021-09-16 14:34:46 74

原创 一次excel表格操作

最近在一家公司上班,发现公司的操作过于落后了,忍不住给他们写了个脚本,统计订单。import xlwt as xwimport xlrd as xrfrom pandas.core.dtypes.inference import is_numberxlsx_file_path = input("请输入送货单模版文件(带上路径)比如E:/filename.xlsx :")xls_file_path = input("请输入将要保存的出库信息表路径,比如E:/ :")xls_sheet_na

2021-09-06 02:34:43 158

原创 使二进制字符串字符交替的最少反转次数

一、问题二、问题分析这问题跟之前交换二进制字符串挺像的,刚开始想当然以为类型二和那个问题一样,结果后来仔细一看这道题要比那道的操作步骤简单多了。问题抽象化:我们将字符串设为[1...n],现在的问题是求出这个字符串的最少变更次数。而第一步操作可以描述为:从[1...n]中选取[1...k]附加到[k+1...n]后面,即[k+1...n,1...k],我们发现中间部位[k+1...n]是不变的,而只有[1...k]的整体变动,然而这[1...k]的变动对[1...k]的转换次数并不会产生影响

2021-06-10 23:11:54 715 1

原创 使数组元素相等的减少操作次数

题目来源:https://leetcode-cn.com/problems/reduction-operations-to-make-the-array-elements-equal/解答:/** * @param {number[]} nums * @return {number} */function s(a,b){ return b - a;}var reductionOperations = function(nums) { let len = nums..

2021-06-10 01:00:59 133

原创 密钥分配(个人学习用,勿作参考)

1.对称密钥分配对称密钥分配体系中,最著名的当属MIT所研发的Kerberos协议。在这里就需要知道KDC(Key Distribution Center)2.公钥分配

2021-05-31 21:13:54 1879

原创 ip报文数据结构

被逼无奈,准备网络工程师考试,重新拾起计算机网络内容。这主要是为了今后自己查阅用的。当然在网络编程的时候,如果能将其了然于心,开发速度上就快很多,不需要边开发边查询文档。...

2021-05-26 18:13:00 96

原创 构成交替字符串需要的最小交换次数题解

一、题目描述给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。交替字符串 是指:相邻字符之间不存在相等情况的字符串。例如,字符串 "010" 和 "1010" 属于交替字符串,但 "0100" 不是。任意两个字符都可以进行交换,不必相邻 。示例 1:输入:s = "111000"输出:1解释:交换位置 1 和 4:"111000" -> "101010" ,字符串变为交替字符串。.

2021-05-19 21:39:14 728

原创 2021-05-16

一张 seat 座位表,平时用来储存学生名字和与他们相对应的座位 id。其中纵列的 id 是连续递增的小美想改变相邻俩学生的座位。示例:+---------+---------+| id | student |+---------+---------+| 1 | Abbot || 2 | Doris || 3 | Emerson || 4 | Green || 5 | Jeames |+...

2021-05-16 21:03:16 79

原创 体育馆的人流量(sql)

表:Stadium+---------------+---------+| Column Name | Type |+---------------+---------+| id | int || visit_date | date || people | int |+---------------+---------+visit_date 是表的主键每日人流量信息被记录在这三列信息中:序号 (id)、日期 (vi...

2021-05-15 20:03:59 246

原创 sql练习(行程和路线)

表:Trips+-------------+----------+| Column Name | Type |+-------------+----------+| Id | int || Client_Id | int || Driver_Id | int || City_Id | int || Status | enum || Request_at | date | ...

2021-05-15 12:19:53 335 1

原创 部门工资前三高的所有员工(sql练习)

Employee 表包含所有员工信息,每个员工有其对应的工号 Id,姓名 Name,工资 Salary 和部门编号 DepartmentId 。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 85000 | 1 || 2 | Henry | 80000 | 2...

2021-05-13 20:50:34 230

原创 万能的sql exists

Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id。+----+-------+--------+--------------+| Id | Name | Salary | DepartmentId |+----+-------+--------+--------------+| 1 | Joe | 70000 | 1 || 2 | Jim | 90000 | 1 || 3...

2021-05-13 11:29:37 89

原创 sql练习

题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/duplicate-emails我的解答:select distinct(p1.Email) from Person as p1,Person as p2 where p1.Id>p2.Id and p1.Email=p2.Email

2021-05-13 08:00:49 65

原创 mysql8新增特性(持续更新)

基本函数TIMESTAMPDIFF(mode,date1,date2)其中mode有YEAR,MONTH,DAY等该函数的具体功能是date2与date1之间关于mode的差比如:TIMESTAMPDIFF(YEAR,2010-03-02, 2013-03-02)返回的是3

2021-05-11 23:08:00 105

原创 连续出现的数字(sql)

表:Logs+-------------+---------+| Column Name | Type |+-------------+---------+| id | int || num | varchar |+-------------+---------+id 是这个表的主键。编写一个 SQL 查询,查找所有至少连续出现三次的数字。返回的结果表中的数据可以按 任意顺序 排列。查询结果格式如下面的例子所示:...

2021-05-11 21:09:58 817

原创 sq练习

编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。+----+-------+| Id | Score |+----+-------+| 1 | 3.50 || 2 | 3.65 || 3 | 4.00 || 4 | 3.85 || 5 | 4.00 || 6 | 3.65 |+----+-------+例如,根据上述给定的 Sc...

2021-05-11 18:06:25 115

原创 第n高的薪水 sql查询

编写一个 SQL 查询,获取 Employee 表中第 n 高的薪水(Salary)。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,n = 2 时,应返回第二高的薪水 200。如果不存在第 n 高的薪水,那么查询应返回 null。+------------------------+| ge...

2021-05-11 15:35:04 426

原创 mixed对象转字符串(web前端)

关于这个问题,我最先是从cache开始的。在阅读echart以及react以及vue框架源码的时候,都发现它们使用相同的cache算法-lru。那么为什么要使用缓存呢?缓存给组件化开发带来哪些性能上的提升呢?我相信学习前端的同学都对目前mvvm模式的前端框架甚是了解,其中的vdom以及组件化更是深入人心,它不仅可以大大提升开发人员开发速度、架构复杂的应用系统还能将视图渲染与数据操作解耦,从而让开发人员专注业务逻辑处理。但也正是vdom以及组件化开发的引入,我们不得不利用缓存来做一些性能优化。比如

2021-05-10 02:30:06 149 2

空空如也

空空如也

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

TA关注的人

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