- 博客(17)
- 收藏
- 关注
原创 【如快 Tauri2 实践】窗口 drag 避坑
使用浏览器默认的 drag 会失效,需要使用 Tauri 自带的 drag,参考:https://github.com/ant-design/ant-design/issues/46318
2025-02-17 11:52:14
228
原创 如快 Tauri 2 实践:结合 pinia 实现本地文件存储响应式
开发 Tauri 程序的时候,有时候需要在本地存储一些数据,并希望借助 pinia 管理以实现响应式,则可以参考本篇文章。项目源码可前往查看。
2025-01-16 18:04:38
871
原创 从 Raycast 到如快:一个程序员的全平台效率启动器解决方案
如快本是我为了满足自己需求开发的一款软件,只是因为后面发现还挺好用,就分享出来给大家一起使用。目前,如快的所有功能都是免费的,包括 AI 功能。后阶段如果成本增加,在一些需要我付费支持的功能,可能会开放付费,比如 AI 功能以及一些需要购买服务器支持的功能。最后我也很好奇:你觉得理想的启动器应该是什么样的?、
2025-01-16 18:01:06
831
原创 原子变量以及CAS
Java中的原子变量是指,可以保证在多线程并发访问时操作的正确性。Java中提供了一组原子类型,包括AtomicInteger、AtomicBoolean、AtomicReference等。原子变量可以使用原子操作来保证多线程访问的原子性,这些操作是由硬件提供支持的,使用锁等高层次机制来实现。原子变量支持一些常见的操作,如增加、减少、比较交换等,这些操作具有原子性,不会被中断或同时被多个线程执行。使用原子变量可以避免线程同步问题,提高程序的性能,尤其在高并发环境下。
2023-04-26 00:43:58
306
原创 实现一个简单的阻塞队列
阻塞队列是一种特殊的队列,它在队列为空的时候,从队头取数据的操作会被阻塞,直到有数据被放入队列;而在队列已满的时候,往队尾放数据的操作会被阻塞,直到队列中有空闲位置。阻塞队列在多线程环境下被广泛使用,通常用于实现生产者-消费者模型,可以有效地协调生产者和消费者之间的流量,避免了线程间的竞争和协作问题。
2023-04-23 00:28:34
250
原创 【设计模式】建造型模式
这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。
2023-04-20 02:27:00
145
原创 【SpringBoot学习笔记】使用JavaConfig配置容器
首先创建所需要的类:package com.blushyes.vo;public class Student { private String name; private Integer age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name
2022-02-04 17:09:52
481
原创 【SpringBoot学习笔记】使用xml配置容器
首先创建所需要的类:package com.blushyes.vo;public class Student { private String name; private Integer age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name
2022-02-04 16:43:09
636
原创 不撞南墙不回头——浅谈深度优先搜索(DFS)
深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法。这个算法会尽可能深的搜索树的分支。当节点v的所在边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。一定要找到最深的节点才回头,然后再寻找其他邻居节点,这就是深度优先搜索。实现深度优先算法的实现方式有两种,分别是用
2022-01-30 17:44:27
595
原创 看似很难实际都一样——最小路径和(二维动态规划)
原题:最小路径和这里我们就不一一分析递归的可行性了,直接上思路,老规矩,先上递归思路。思路首先仍然是问题转换,原题给的函数和问题转换后的函数分别为:int minPathSum(vector<vector<int>>& grid); //返回grid从左上到右下的最小路径和int minPathSumToXY(vector<vector<int>>& grid, vector<vector<int>>&am
2022-01-27 00:35:29
679
原创 做控制台小游戏太麻烦?——自己写一个简易的控制台游戏库
灵感本来想做个迷宫小游戏来练习dfs,但是控制台游戏那些输入输出,光标移动之类的代码太过繁琐,于是我觉得自己写一个简易的控制台游戏库,封装一些常用的代码。地图我的想法是控制台游戏,一般都是二维的,所以需要一张地图,外部只需要对这个地图进行操作就可以实现对整个游戏内容的操作了。...
2022-01-25 17:38:33
2746
原创 看似动态规划,实则不需要——等差数列划分
原题:等差数列划分老规矩,先看看能否用递归解。转换假设现在的数列为[1,2,3,4,5,6],要怎么才能找出其子数列中所有的等差数列而无遗漏呢?很容易想到,我们可以找出其所有子数列中以某数开头或者以某树结尾的等差数列。这里就拿找出所有以某数结尾的等差数列举例。假设要找出[1,2,3,4,5,6]的子数列中所有的等差数列,只需把问题转换为分别找出这个数列的所有子数列中以i(i in [1,2,3,4,5,6])结尾并将其求和即可。是否能分解为子问题考虑一般的情况,以数列nums中的第i(i&g
2022-01-24 01:44:08
600
原创 做一个聪明的小偷——打家劫舍(一维动态规划)
不怕小偷有文化,就怕小偷会规划。今天来看一道一维动态规划的例题:打家劫舍首先来尝试一下利用递归法求解我们先来考虑一下是否可以用递归法求解首先我们考虑这几个条件是否满足:1.是否可以分解为子问题2.是否满足最优子结构3.是否存在递归基是否可以分解为子问题假设我们现在偷的房子集为[2,7,9,3,1],我们...
2022-01-23 19:10:41
430
原创 用空间换取时间——浅谈动态规划
灵感递归能够解决的问题,说白了就是能否分解为许多个相同类型的规模更小的子问题的问题,其实就是一种分治思想,递归只是其中的一种实现手段而已。而当存在着大量重复子问题的时候,单纯的递归效率确实太低了,所以这种情况下,若仍想使用递归,就必须使用带备忘录的递归。那么,是否存在一种非递归,也就是迭代的实现方法呢?没错,它就是我们今天的主角——动态规划。初识我们先来回顾一下带备忘录的递归——将每次计算的结果储存起来,下次若再次遇到,则只需直接从记忆表中提取即可。这是一种用空间换取时间的方法,显然,这是十分正确有
2022-01-22 01:35:42
1646
原创 禁止套娃——浅谈递归思想
灵感相信大家小时候都被这样一个小故事给绕进去过:从前有座山,山上有个庙。庙里有两个和尚,一个老和尚、一个小和尚。老和尚在给小和尚讲故事,老和尚说,从前有座山,山上有个庙。庙里有两个和尚,一个老和尚、一个小和尚。老和尚在给小和尚讲故事,老和尚说……小时候给别人讲这个故事,总能引得大家哄堂大笑。现在再次看到这个故事时,却发现它并没有想象中的那么简单,因为其中隐含着一种重要的编程思想——递归思想。初识那么问题就来了,什么是递归思想呢?我们先来看看递归的维基百科:递归(英语:Recursion)
2022-01-21 20:49:47
501
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人