- 博客(59)
- 收藏
- 关注
原创 算法奇妙屋(二十四)-二维费用的背包问题、似包非包问题、卡特兰数问题(动态规划)
【代码】算法奇妙屋(二十四)-二维费用的背包问题、似包非包问题、卡特兰数问题(动态规划)
2026-01-11 19:21:22
893
4
原创 七大基于比较的常见排序算法
2.在partition这个函数中 array[right ]>= array[pivot] 与 array[left] <= array[pivot], 这两个条件, 必须带等号吗?4.但是当 maxIndex == left 时, 最小值交换后会导致 left 的值发生改变, 所以需要特殊处理, 把 maxIndex 改为 minIndex。1.时间复杂度:O(N^2) 最好情况(顺序排列)能达到O(N)1.时间复杂度:O(N^1.25 至 1.6N^1.25)1.时间复杂度:O(N^2)
2025-10-17 00:42:05
602
5
原创 算法奇妙屋(六)-哈希表
提议十分简单,即求两数之和等于目标值的下标,并且下标不能出现两次。这里的算法原理十分简单, 用set模拟哈希表即可快速解决。相比于上一道题只是增加了下标的差值<=k这个条件。这道题比较简单, 具体看题意即可。
2025-10-14 00:04:29
594
7
原创 算法奇妙屋(五)-链表
这道题目就是把多个有序链表连接成一个, 这里不过多赘述题意, 直接上算法原理。的解法思路类似,只是把对两个数组合并的过程变成了两个链表合并。这里可以用优先级队列, 通过建立小根堆的方法来进行链接。题目意思是每k个节点进行逆序,不满足k个节点的不逆序。
2025-10-11 23:34:19
653
9
原创 算法奇妙屋(四)-归并分治
我们要注意,这道题里面的测试用例输入数组中的所有数字都在32位整数的表示范围内, 但是我们×2后那么就会超出32位, 所以我们用除以2的方式。归并排序我们应该不陌生, 这里我们只是复习归并排序的算法原理。题目意思大白话解释就是前面有多少数大于后面数值的2倍。
2025-09-30 00:07:24
503
10
原创 算法奇妙屋(一)-位运算
1.先全部异或得到数字 num, 得到的该数字然后计算二进制第一个 1 的位置 x, 得到该x是为了确定这两个单身数字二进制的第一个不同位置, 然后按照该位置二进制不同值来分组, 为 0 一组, 为 1 的一组, 这两个不同数字肯定在不同组, 最后分别异或两组, 即可求出这两个单身数字。根据位图思想, 结合下方图示算法, 可以看出当该单身数二进制的某一位置为 0 时, 磨上 n 也为0 , 为 1 时 磨上 n 仍为 1, 然后将该数写到位图中, 写满32个比特位, 得到的数字就是要找的单身数字。
2025-09-12 00:40:40
625
10
原创 Git详解
先在本地master和dev分支pull一下, 获取到当前远程仓库最新代码, 然后在本地master合并到dev, 如果有冲突解决合并冲突, 解决完冲突后然后dev合并到master上, 最后master推送给远程仓库的origin/master中。5.hotfix分支, 补丁分支后bug修复分支, 基于master分支创建, 修复完成后合并到master和develop分支上, 并推送远程, 一旦上线后就删除。
2025-09-09 01:06:43
1318
8
原创 多线程(六) ~ 定时器与锁
定时器这个概念在生活十分常见, 例如早上你定了三个闹钟来催你起床, 一个闹钟可能叫不醒你, 那第二天早上三个闹钟就会在对应时间段依照你定义的时间先后顺序响起, 而在软件开发中定时器也是一个很重要的概念, 你想安排一个程序什么时候运行, 等待一段时间再运行, 想让有的任务先执行等等…
2025-09-06 22:55:50
875
5
原创 多线程(五) ~ 阻塞队列与线程池
什么是阻塞队列?答: 阻塞队列是⼀种特殊的优先级队列. 也遵守 “先进先出” 的原则, 阻塞队列也有两个特性,当队列满的时候, 继续⼊队列就会阻塞, 直到有其他线程从队列中取走元素当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队列中插入元素为什么要用阻塞队列?答: 当客户端与服务器直接交互时, 如果遇到用户请求高峰期, 大量的请求会直接涌入服务器, 直接处理大量请求数据可能会把服务器搞挂掉, 那么这时就需要一个缓冲器来缓解这种特殊情况阻塞队列是可以循环使用的且不能扩容的, 我们把它设计成。
2025-08-04 13:30:50
791
3
原创 多线程(三)-线程安全原因与解决
这道题是典型的哲学家就餐问题, 三个哲学家三根筷子, 但吃饭需要两根筷子且只能拿最近的两双筷子, 他们如果同时拿尝试获取两根筷子, 这时候胡不想让就会阻塞, 于是我们可以换种思路, 让第一个人先拿第一根筷子, 让第二个人先拿第二根筷子, 以此类推, 但是最后一个人要先尝试拿第一根筷子, 拿不到先等待, 这时候, 倒数第二个人可以趁机获取到最后一根与前一根筷子, 从而完成就餐, 整个问题迎刃而解!保了, 他是一定会改变的, 给他一次机会, 请JVM高抬贵手放弃优化该变量的去读操作吧!
2025-08-03 09:00:00
864
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅