自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode 188题: 买卖股票的最佳时机IV优化(原创)

算法思路:1.买了j次的最大获利值等于:昨天买了j次,和昨天卖了j-1次,今天再买的最大值;2.卖了j次的最大获利值等于:昨天卖了j次,和昨天买了j次,今天再卖掉的最大值

2024-07-21 08:37:44 138

原创 设计模式在FileBrowser中的几个应用

设计模式是代码重构的最终目标,在程序设计中有效的运用这项技术,可以大大提高代码的可读性和可维护性。使整个程序设计结构趋向精致完美。在我维护的FileBrowser模块中可以针对以下方面应用相应的模式。1. 使用策略模式来处理文件夹扫描操作作为网络文件浏览器,FileBrowser中自然有很多对文件夹的操作。包括计算文件夹信息,删除文件夹等,这些操作采用的都是标准的文件夹遍历的代码,只是

2024-07-21 08:26:21 650 1

原创 LeetCode 188题: 买卖股票的最佳时机IV(原创)

动态规划算法是数据结构中一个很重要的算法,另外一般学校里教的都很浅薄,程序员一定要自学掌握其算法脉络,并能学会灵活运用;无后效性,递推算法一般只需要考虑眼前最近一层,其它层一定不需要考虑。“未来与过去无关”;这道题的关键点就是:根据当天的投资次数将二维数组扩展成三维数组,并依次根据昨天的计算数值,对每天持有/未持有股票且交易0到k次各种情况的最大获利值进行计算;LeetCode解题之前,一定不要看题解,看了就“破功”了!

2024-07-20 15:27:17 822

原创 LeetCode 123题: 买卖股票的最佳时机 III代码优化(原创)

算法设计还是要不管精进优化,最终尽量获得最优结果!

2024-07-19 11:20:58 285

原创 LeetCode 123题: 买卖股票的最佳时机 III(原创)

根据当天的投资次数将二维数组扩展成三维数组,并依次根据前一天的计算数值,对每天的各种情况进行计算

2024-07-19 09:18:06 624

原创 LeetCode 714题: 买卖股票的最佳时机含手续费(原创)

这道题目又是经典的动态规划的问题,定义二维整数数组int dp[n][2],定义dp[i][0]为,第i天客户手里没有股票时的最大收益值,dp[i][1]为,第i天客户手里有股票时的最大收益值

2024-07-18 10:36:05 818

原创 LeetCode 7题:整数翻转(原创)

这道题解法比较简单,就是按十进制左右移位计算当前数据尾数值,并通过不断除以10,来获取整数所有数值

2024-06-11 16:03:27 363 1

原创 《编译原理-龙书》阅读笔记 第一章

语言处理器:一个集成的软件开发环境,其中包括很多种类的语言处理器,比如编译器、解释器、汇编器、连接器、加载器、调试器以及程序概要提取工具。编译器的步骤;一个编译器的运作需要一系列的步骤,每个步骤把源程序从一个中间表示转换成为另一个中间表示。机器语言和汇编语言:机器语言是第一代程序设计语言,然后是汇编语言。使用这些语言进行编程既费时,又容易出错。编译器设计中的建模:编译器设计是理论对实践有很大影响的领域之一。已知在编译器设计中有用的模型包括自动机、文法、正则表达式、树型结构和很多其他理论概念。

2024-06-01 15:18:57 585

转载 停止追赶最新的 RPA 趋势

大多数原生 RPA 自动化都是基于 GUI 的,花点时间让大家了解一下,基于 GUI 的自动化,包括指示机器人通过 UI 与另一个程序通信,这类似于强迫两个相同母语的人用猜字谜的方式来进行交流。基于 GUI 的自动化终归是一种妥协,因为在底层总是有更有效的方法来执行相同的任务

2024-05-21 14:37:05 25

转载 RPA 已死,集成自动化才是未来

尽管 RPA 提供了清晰的技术能力和为旧系统和流程注入活力的真正优势,但它并没有激发企业重新优化其业务流程——它实际上只是帮助企业更快地在公司内部转移数据,并且减少手工干预。此外,大多数已签署的“RPA”约定不是针对无人参与的流程的,而是针对机器人桌面自动化(RPA)部署的。参与 RDA 需要一个人机交互的循环来完成任务。这些约定并不是我们所发明的 RPA 的初始模型——它们是一群形形色色的脚本和宏,它们为凌乱的桌面应用程序和进程添加了一些附加功能,以维护原有的做事流程。当然,这通常会带来对劳动力需求的减少

2024-05-21 14:33:13 33

原创 LeetCode 43题:字符串相乘(原创)

这道题解法的核心在于:两两(假设索引分别为i和j)相乘根据两个数的位置之和设置结果的位置;

2024-05-17 09:08:15 485

原创 LeetCode 3题:无重复字符的最长子串(原创)

根据题目描述和对示例进行分析,感觉这一题可以通过“滑动窗口”的算法进行处理,即定义两个索引值i1,i2,i1,i2从0开始,i2向后滑动,判断当前子字符串是否有重复字符,如果没有不断更新最大长度值,如果有的话,将i1设置为与最后一个字符重复的字符下一个索引值。按照这个思路,完成代码编写,并提交LeetCode成功

2024-05-16 09:49:56 362

原创 LeetCode 2题:两数相加(原创)

这道题解法的关键流程在于:1)当前两个节点以及上一次进位数值进行求和,模时之后将余数设置为当前节点的数值,并新的进位数带到下一个节点;2)L1或者L2节点为空的情况特殊处理 3)最后一个节点只剩进位值carry的特殊情况处理

2024-05-15 15:38:13 451

原创 LeetCode1017题:负二进制转换(原创)

此题解法的关键点就在于“目标值减去当前所有计入数值负二进制位之和的余数,不可以包含低位2进制”

2024-04-28 12:25:55 538

原创 LeetCode39题: 组合总和(原创)

回溯算法定义 回溯算法,是一种选优搜索法,又称为试探法,按选优条件向前搜索以达到目标。 回溯算法简要说:但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。 而满足回溯条件的某个状态的点称为“回溯点”。

2024-04-27 11:31:09 951

原创 LeetCode55题:跳跃游戏(原创)

递归算法比较简单,但会有重复计算的陷阱,之前动态规划算法里也提到过了;

2024-04-15 12:22:12 961

转载 呆伯特法则-“有关管理的一切都是扯X”

你和呆伯特的最大共鸣,就是“有关管理的一切都是扯X”从1989年到现在,斯科特·亚当斯已经绘制了近9000幅呆伯特(Dilbert)系列漫画。他对管理、老板以及办公室“格子间”文化的讽刺性描绘,展现了当代人对职场的态度。

2024-04-11 10:50:55 86

原创 LeetCode-2529题:正整数和负整数的最大计数(原创)

按照大神Donald Knuth所说“思路很简单,细节是魔鬼”,二分查找算法需要特别关注前后索引值这些细节方面。第一篇二分搜索论文是 1946 年发表,然而第一个没有 bug 的二分查找法却是在 1962 年才出现,中间用了 16 年的时间

2024-04-10 10:05:06 952

原创 LeetCode-1669题:合并两个链表(原创)

链表操作要注意首节点保存和尾节点的获取与保存所有链表操作基本上都是对三个变量的操作:当前节点curNode,上一节点preNode,下一节点nexyNode;链表遍历时对不停地更新上面三个变量LeetCode解题之前,一定不要看题解,看了就“破功”了!

2024-03-24 14:01:10 955

原创 LeetCode-60题:排列序列解法三(原创)

这里还有一个优化点:交换之后的数组,绝对是一个递减数组,将其变为最小的数,不需要复杂的排序,只要将这一段数字进行倒序排列即可!

2024-03-23 20:53:17 301

原创 LeetCode-60题:排列序列解法二(原创)

算法实现精要:每个数字排列的下一个排列:就是从倒数第二个数字开始,往后找到比此数大的数字,两者进行交换,然后再将后面的数字进行排序即可,找不到的话序号向前推进。。。;算法实现最好能精益求精,不可浅尝辄止,温故而知新比做新的算法题可能收获更大;一定要有自己的原创算法思想,不能一味按照公式去套,那样的话就只是机械的应试刷题,没有自己的灵魂!没有自己的思想!LeetCode解题之前,一定不要看题解,看了就“破功”了!

2024-03-20 14:20:19 1108

原创 LeetCode-60题:排列序列解法一(原创)

这道题关键的难点在于递归回溯的数字选取上;反复调试代码,查看生成过程,可以清晰的看出整个1-K个序列,每个数字的生成过程

2024-03-20 12:13:20 831 1

原创 LeetCode-17题:电话号码的字母组合(原创)

要掌握回溯算法的思想和实现,此类问题就能迎刃而解:“回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。这种走不通就退回再走的技术为回溯法,所以也经常称作试探法对于此类问题”这一题另外一个关键需要计算数字数值和所有映射的字母之间的数值关系,我自己发现的公式:char c2 = (char) ('a' + (c1 - '2') * 3 + delta + i);

2024-03-17 12:11:29 734

原创 LeetCode-337题:打家劫舍III(原创)

递归函数存在大量重复调用的情况,可以考虑设计一个缓存来存储已经计算好的节点,这样能大大提高算法性能

2024-03-13 16:38:24 1016

原创 LeetCode-213题:打家劫舍II(原创)

本题的关键点就在于:由于首尾相连,0和N-1的房屋不可能重复抢劫,因此就是按照198题的思路求0到N-2,以及1到N-1分成两批抢劫处理,然后再求出两者最大金额即可

2024-03-13 15:07:43 1043

原创 LeetCode-198题:打家劫舍(原创)

本题的关键点就在于“如果不偷当前房屋,上一间房屋可偷可不偷,问题答案就等于上一间房屋偷或不偷两种情况的最大金额;如果偷取当前房屋,上一间房屋则不可偷,问题答案等于当前房屋金额加上上一间房屋的最大金额”

2024-03-13 14:49:12 937

原创 LeetCode-92题: 反转链表 II(原创)

​这道题就是链表翻转的通用版本. - 力扣(LeetCode),即常见的链表翻转是将长度为n的链表从位置1到位置n的节点进行翻转。把这个算法改写成为通用的链表翻转算法即可,即链表中间一段按通用的翻转算法将左位置到右位置下一节点(左开右闭)这一段节点进行翻转,最后将左位置前一节点指向翻转后的一段链表表的首节点(即右位置)即可​

2024-03-11 15:10:33 886

原创 LeetCode-102.题: 二叉树的层序遍历(原创)

这道理的关键点在于“自顶向下,一层接一层交替访问树节点”;算法设计时,可以考虑最简单的情况,试探思考其运行逻辑应该是什么样的还是要有精细化的逻辑思维,层次分明,这样在复杂的逻辑也不会乱;

2024-03-08 18:54:53 662

原创 LeetCode-1944题: 队列中可以看到的人数(原创)

这道题算法设计的关键点在于使用堆栈:以及保存当前位置右侧所有的“一山还比一山高”的身高;

2024-03-08 15:25:39 787 1

原创 LeetCode-91题:解码方法(原创)

对于此类问题,“动态规划”是王道,递归方式容易思考,但是存在大量的重复计算,性能远远和动态规划无法相比;

2024-03-07 10:14:40 1087

原创 LeetCode-22题:括号生成(原创)

掌握“回溯”:回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试

2024-03-06 14:53:34 914

原创 LeetCode-122题: 买卖股票的最佳时机 II(原创)

动态规划的思想就是将人们正常的跳跃性和跨越性思维,转换成计算机的一步一个脚印,只看眼前路的思维方式

2024-03-02 10:12:33 368

原创 LeetCode-121题: 买卖股票的最佳时机(原创)

动态规划算法是数据结构中一个很重要的算法,另外一般学校里教的都很浅薄,程序员一定要自学掌握其算法脉络,并能学会灵活运用;

2024-02-29 09:32:02 459

原创 LeetCode-4题:寻找两个正序数组的中位数(原创)

归并算法是数据结构排序算法中一个很重要的算法,归并排序非常稳定,时间复杂度始终都是 N*logN,另外除了常规的数组排序之外,很多场景都可以应用到,比如笔者以前做过的远程和本地文件夹同步算法,就是两边文件名称数组,进行归并比较处理,大家要掌握这个算法思路以及应用技巧;

2024-02-25 08:54:13 950

原创 Text2Sql研究(二)- 大模型测试对比结果

我们就对市面各个商业大模型做了SQL生成测试对比,我们挑选了9个问题,并针对千帆Qianfan-Chinese-Llama-2-13B、SQLCoder-34B-Beta、通义千问-Max、讯飞星火-3.5、智普GLM-4做了测试结果分别如下:千帆Qianfan-Chinese-Llama-2-13B:6错3对,回答非常啰嗦,准确性不高;SQLCoder-34B-Beta:8错1对,返回SQL存在Oracle方言问题,且无法通过prompt解决通义千问-Max:9题全错,无论如何更换question,

2024-02-22 09:18:42 1585

原创 LeetCode-57题:插入区间(原创)

逻辑思维,逻辑思维,逻辑思维,重要的事情说三遍,算法处理一定要相关业务逻辑上想清楚;

2024-02-16 13:13:37 987

原创 Text2SQL研究(一)-Chat2DB体验与剖析

Chat2DB案例测试与原理剖析

2024-02-07 15:15:31 2223

原创 LeetCode-208题:实现Tire前缀树(原创)

前缀树对外提供的功能函数,要根据代码执行逻辑,找到其共性点,设计好内部通用函数,一旦内部通用函数设计好,公共的功能函数只需要在此基础上进行封装即可,达到最大的代码复用,并通过这种“正交性”分解,降解了程序的复杂性

2024-01-21 11:54:24 1023

原创 LeetCode-25题: K 个一组翻转链表(原创)

1)首先要对复杂问题分解:再复杂的问题像“”庖丁解牛“”一样,找到其中脉络,进行分解之后,都会被切割成简单的个体小单元,很容易理解和掌握。2)要学会“”依此类推“”的思路:算法的解决大数据问题基本都是找出其中规律,进行重复性操作。

2024-01-01 09:18:53 574

原创 《人件》——读书笔记

《人件》读书笔记,推进大家阅读次数

2023-08-28 15:09:40 122

DirectUI库demo

一个directUI库的源代码,以及我们后来基于这个库 开发的界面demo

2010-06-08

空空如也

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

TA关注的人

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