自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DavidXu的笔记

记录 IT 技术开发经验和学习心得:)

  • 博客(217)
  • 资源 (2)
  • 收藏
  • 关注

原创 JavaScript 同步异步机制和 Promise 原理实现笔记

单线程是基础:JS 主线程只能串行执行任务,异步本质是“延迟执行”而非“并行执行”;任务优先级:同步任务 > 微任务 > 宏任务;事件循环:每次仅执行一个宏任务,执行完后必清空所有微任务,再执行下一个宏任务;是Promise的语法糖,await后的代码属于微任务。

2025-12-18 22:19:06 884

原创 【OD机试题笔记】去除多余空格

去除文本多余空格,但不去除配对单引号之间的多余空格。给出关键词的起始和结束下标,去除多余空格后刷新关键词的起始和结束下标。第一行:待去除多余空格的文本,用例保证如果有单引号,则单引号成对出现,且单引号可能有多对。第二行:关键词的开始和结束坐标,关键词间以逗号区分,关键词内的开始和结束位置以单空格区分。第二行:去除多余空格后的关键词的坐标开始和结束位置,为数组方式输出。之间有多余的空格,但是因为有成对单引号,不去除多余空格。第一行:去除多余空格后的文本。中间多余的空格进行删除。

2025-12-15 11:52:37 262

原创 Virtual Globe 渲染技术笔记】13 资源准备的并行化

这些数据在真正渲染前,还要经过 CPU-密集的处理(三角化、纹理打包、LOD 生成、压缩/解压等)——统称为。“免费午餐”已结束:单线程性能不再随晶体管暴涨,必须用多线程才能吃满核心。示例:后台线程把文件路径转为渲染对象,主线程每帧把完成对象加入渲染列表。,把资源准备搬到后台线程,并给出多种架构、OpenGL 多线程实践。如果在渲染线程里做这些工作,会阻塞渲染循环,导致帧率骤降。虚拟地球需要持续从磁盘/网络加载地形、影像、矢量数据。,渲染线程永远有东西可画。目标:让渲染线程只负责。

2025-12-09 15:01:41 580

原创 【Virtual Globe 渲染技术笔记】12 布告牌(Billboards)

布告牌(Billboard)是一种始终面向观察者的纹理四边形,常用来渲染图标、文字、粒子等。本章重点介绍如何用 GPU 高效地渲染大量带有不同纹理的布告牌,并在此基础上实现文字标签。文字可视为带纹理的布告牌。

2025-12-09 15:01:06 244

原创 【Virtual Globe 渲染技术笔记】11 多边形(Polygons)

利用模板缓冲标记“内部”像素,再进行颜色调制(图 8.23)。常见例子:邮政区划、州、国家、冰川范围(图 8.1)。:让三角形真正贴合椭球面(图 8.15)。一旦能在椭球上绘制折线,下一步就是绘制。纹理上,再用多重纹理与地形混色。查询:逐三角形做三平面点积即可。:把多边形“烙”到一张。我们把多边形的边界视为。,除非使用自研格式。

2025-12-09 15:00:21 635

原创 【Virtual Globe 渲染技术笔记】10 矢量数据与折线

把大量小折线塞进一次 Draw Call,减少 CPU/GPU 往返。即可加载 shapefile,实时观察折线、多边形、布告板渲染效果。纹理只存 0/1,不存颜色,因此可复用于不同颜色组合。图 7.1(b) 展示了三种基本矢量形态:河流是。:内色 + 边框,使折线更醒目(图 7.11)。的渲染与预处理技术(三角化、纹理打包等)。接下来三章节将逐一介绍现代虚拟地球中。(polyline),国家是。(polygon),城市是。示例:1000 点折线。

2025-12-09 14:59:32 512

原创 【Virtual Globe 渲染技术笔记】9 深度缓冲精度

更激进的会问:“我把近平面设成 0.0001、远平面设成一个天文单位不行吗?的离散值极少 → z-fighting(图 6.1(a))。每个图形开发者迟早会问:“近平面和远平面到底该设多远?= 1000,通常 3-4 个视锥体即可。(depth partition),每个。(深度冲突)时,那震惊的表情——无价!:默认 1 m / 100 Mm,越大,越难区分两张紧挨的片元。当他们第一次看到由此产生的。(OpenGL 透视矩阵)在顶点/片元着色器中把。

2025-12-09 14:59:06 469

原创 【OD机试题笔记】生成回文素数

如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。例如,2,3,5,7,11 以及 13 是素数。如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数,例如,12321 是回文数。求出大于或等于 N 的最小回文素数。

2025-12-06 10:46:48 173

原创 【OD机试题笔记】流浪地球

以时间为轴,模拟扩散过程,追踪每个节点的最早启动时间,本质是环形数组上的广度优先搜索(BFS)。如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被”关联启动”;如果准备启动某个发动机时,它已经被启动了,则什么都不用做;N代表部署发动机的总个数,E代表计划手动启动的发动机总个数。发动机启动的方式分为”手动启动"和”关联启动"两种方式;T代表发动机的手动启动时刻,P代表此发动机的位置编号。8个发动机,时刻0手动启动0,时刻1手动启动7.8个发动机,时刻0启动2和6号发动机。

2025-12-06 10:46:01 155

原创 【OD机试题笔记】猜数字

其中X表示位置正确的数的个数(数字正确且位置正确),而Y表示数字正确而位置不对的数的个数。每猜一个数,出数者就要根据这个数字给出提示,提示以XAYB形式呈现,直到猜中位置。当前已知N组猜谜者猜的数字与提示,如果答案确定,请输出答案,不确定则输出NA。例如,当谜底为8123,而猜谜者猜1052时,出题者必须提示0A2B。例如,当谜底为5637,而猜谜者才4931时,出题者必须提示1A0B。接下来N行,每一行包含一个猜测的数字与提示结果。输出最后的答案,答案不确定则输出NA。

2025-12-06 10:45:00 179

原创 【OD机试题笔记】分披萨

吃货”和“馋嘴”两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。接下来的第 2 行到第 N+1 (共 N 行),每行为一个正整数,表示第i块披萨的大小, 1≤i≤N。由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从“吃货”开始,轮流取披萨。已知披萨小块的数量以及每块的大小,求“吃货”能分得的最大的披萨大小的总和。至此,披萨瓜分完毕,”吃货“拿到的披萨总大小为 10+7+2=19。“馋嘴”每次都会选最大块的拨萨,而且“吃货”知道“馋嘴”的想法。

2025-12-06 10:43:59 542

原创 【OD机试题笔记】火星文计算

输入的字符串说明:字符串为仅由无符号整数和操作符(#、$)组成的计算表达式。12345678987654321$54321 //32位整数计算溢出。火星人公式中,$的优先级高于#,相同的运算符,按从左到右的顺序计算。保证输入的字符串为合法的求值报文,例如:123#4$5#67$78。现有一段火星人的字符串报文,请你来翻译并计算结果。3+4-5*6/7 //有其它操作符。例如:123#4$5#67$78。#4$5 //缺少操作数。4$5# //缺少操作数。4#$5 //缺少操作数。输入 7#6$5#12。

2025-12-06 10:43:00 586

原创 【OD机试题笔记】几何平均值最大子数组

有多个长度至少为2的子数组的几何平均值为0.2,其中长度最短的为2,也有多个,长度为2且几何平均值为0.2的子数组最前面的那个为从第二个数开始的两个0.2组成的子数组。从一个长度为N的正数数组numbers中找出长度至少为L且几何平均值最大子数组,并输出其位置和大小。长度至少为2的子数组共三个,分别是{2,2}、{2,3}、{2,2,3},其中{2,3}的几何平均值最大,故输出其位置1和长度2。若有多个长度相同的子数组的几何平均值均为最大值,则输出最前面的子数组。

2025-12-06 10:42:21 374

原创 【OD机试题笔记】智能驾驶

有一辆汽车需要从 m * n 的地图左上角(起点)开往地图的右下角(终点),去往每一个地区都需要消耗一定的油量,加油站可进行加油。后面一个 M * N 的矩阵,其中的值是 0 或 -1 或正整数,加油站的总数不超过 200 个。行走的路线为:下→下→下→右→右→上→上→上→右→右→下→下→下。-1 :表示加油站,可以加满油,汽车的油箱容量最大为100;第一行为两个数字,M,N,表示地图的大小为 M * N。如果汽车可以到达终点,则返回最少的初始油量。行走的路线为:右→右→下→下→下→右。

2025-12-06 10:41:34 857

原创 【OD机试题笔记】转盘寿司

如果客户选择了第 i 盘寿司, 寿司店免费赠送客户距离第 i 盘寿司最近的下一盘寿司 j ,前提是 prices[j] < prices[i],如果没有满足条件的 i ,则不赠送寿司。寿司转盘上总共有 n 盘寿司, prices[i] 是第 i 盘寿司的价格。每盘寿司的价格 price 范围为:1≤ price ≤1000。第 3 盘寿司价格 prices[3] ​为 14。第 1 盘寿司价格 prices[1] 为 15。第 0 盘寿司价格 prices[0] 为 3。每个价格的寿司都可无限供应。

2025-12-06 10:40:38 274

原创 【OD机试题笔记】员工派遣

找到最小的 k,使得可以将编号在 [1, k] 中的员工分配给 x 国和 y 国,且满足 x 国和 y 国的需求。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工。规则2:编号为 x 的倍数的员工不能去 x 国,编号为 y 的倍数的员工不能去 y 国。部门每个员工有一个员工号(1,2,3,…),工号连续,从1开始。规则1:从 [1, k] 中选择员工派遣出去。四个整数 x,y,cntx,cnty。3 表示国家2需要3个人。1 表示国家3需要1个人。

2025-12-06 10:35:57 400

原创 【OD机试题笔记】发广播

问题转化:将广播站和连接关系抽象为无向图,问题转化为求连通分量数量;工具选择:并查集或 DFS/BFS 均可,优先并查集(高效简洁);关键逻辑:每个连通分量只需初始发送一次广播,因此连通分量数 = 最少发送次数。

2025-12-05 15:02:54 721

原创 【OD机试题笔记】查找充电设备组合

当充电设备输出功率50、20、20组合时,其输出功率总和为90,最接近充电站最大充电输出功率,因此最优元素为90。选择功率为2,3的设备构成功率集合,总功率为5,最接近最大功率9。所有充电设备的输出功率组合,均大于充电站最大充电输出功率30,此时最优元素值为0。功率集合 P 的最优元素,表示最接近充电站最大输出功率 p_max 的元素。某个充电站,可提供 n 个充电设备,每个充电设备均有对应的输出功率。任意个充电设备组合的输出功率总和,构成功率集合 P 的 1 个元素。第 2 行为每个充电设备的输出功率。

2025-12-05 15:02:16 265

原创 【OD机试题笔记】高效的任务规划

算法选型:贪心算法,核心是通过最优局部选择推导全局最优解;排序规则:将机器按「执行时间J从大到小」排序(J相同无需额外处理,因B不影响核心逻辑),优先配置执行时间长的机器;核心计算维护sumB(累计配置时间):配置需串行执行,逐台累加每台机器的配置时间B;sumB + 该机器执行时间J(配置完成后机器并行执行,完成时间为配置累计时间+自身执行时间);总耗时为所有机器完成时间的最大值(并行执行下,最后完成的机器决定总耗时);流程。

2025-12-05 15:01:50 404

原创 【OD机试题解法笔记】数大雁

​ 2.大雁会依次完整发出”quack”,即字符串中’q’ ,‘u’, ‘a’, ‘c’, ‘k’ 这5个字母按顺序完整存在才能计数为一只大雁。一个字符串,包含大雁quack的叫声。1 <= 字符串长度 <= 1000,字符串中的字符只有’q’, ‘u’, ‘a’, ‘c’, ‘k’。​ 3.如果字符串不是由’q’, ‘u’, ‘a’, ‘c’, ‘k’ 字符组合而成,或者没有找到一只大雁,请返回-1。一群大雁往南飞,给定一个字符串记录地面上的游客听到的大雁叫声,请给出叫声最少由几只大雁发出。

2025-12-05 15:01:27 909

原创 【OD机试题笔记】没有回文串

现在已经存在一个不包含回文串的字符串,字符串的字符都是在英语字母的前N个,且字符串不包含任何长度大于等于2的回文串;第二行输入一个字符串(输入长度<=10000),输入保证这个字符串是合法的并且没有包含回文串。第一行有一个整数:N(1<=N<=26),表示字符串的每个字符范围都是前N的英语字母。请找出下一个字典序的不包含回文串的、字符都是在英语字母的前N个、且长度相同的字符串。输出下一个字典序的不包含回文串的、字符都是在英语字母的前N个、且长度相同的字符串;如果不存在,请输出NO。

2025-12-05 14:58:55 214

原创 【OD机试题笔记】排队游戏_刺头学生

刺头在0,1位置,2号同学不满程度2(前面两个刺头能力值都比他大),3号同学不满程度2,总不满程度4,大于3。对于非刺头同学,如果发现他前面有能力值比自己高的同学,他不满程度就增加,增加的数量等于前面能力值比他大的同学的个数。第二行为刺头所在位置(从0开始,即排队数组的下标,比如1代表队伍中第2个同学是刺头),位置的数组也是排序的。第三行有n个数,空格隔开,表示老师排好的队中每个人的能力值,其中非刺头同学一定按照能力值从小到大排好序的。如果整个班级累计的不满程度超过k,那么老师就没有办法教这个班级了。

2025-12-05 14:58:35 415

原创 【OD机试题笔记】编码能力提升计划

为了提升软件编码能力,小王制定了刷题计划,他选了题库中的n道题,编号从0到n-1,并计划在m天内按照题目编号顺序刷完所有的题目(注意,小王不能用多天完成同一题)。目标是找到最小的单日最大耗时T,使得能将n道题按顺序分成m段,每段可跳过1道耗时最大的题,剩余总耗时≤T。此外,小王还可以查看答案,可以省去该题的做题时间。在前三天中,小王每天都直接看答案,这样他可以在三天内完成所有的题目并不花任何时间。若题目数≤天数(n≤m),每天做1题并跳过,直接返回T=0。第二天完成第4题和第5题,第5题看答案;

2025-12-05 14:58:17 308

原创 【OD机试题笔记】污染水域

将输入字符串转为N×N矩阵,判断从初始污染点(1)向上下左右扩散污染所有纯净区域(0)的天数;若初始全污染或无法全污染,返回-1。数组中只有0和1,0表示纯净,1表示污染,每天只可污染上下左右的水域,如果开始全部被污染,或永远无法污染,则返回-1。输入一行字符串,字符串可转换为N*N的数组,数组可认为是一个水域,判断多少天后,水域被全部污染。否则返回全部污染花费的天数。逗号分割的NxN个数字。

2025-12-05 14:58:02 341

原创 【OD机试题笔记】可以处理的最大任务数

在某个项目中有多个任务(用tasks数组表示)需要您进行处理,其中tasks[i]=[si,ei],你可以在si <= day <= ei中的任意一天处理该任务,第一行为任务数量n,1 <=n<= 100000。后面n行表示各个任务的开始时间和终止时间,使用si,ei表示,1 <= si <= ei <= 100000。模拟「按天处理任务」的过程,每天优先处理「结束时间最早」的可用任务,确保不浪费当天时间,同时避免任务过期。输出为一个整数,表示可以处理的最大任务数。请返回你可以处理的最大任务数。

2025-12-05 14:57:16 444

原创 【OD机试题笔记】二进制差异数

现在有n个正整数A0到A(n-1),问有多少(i, j) (0<=i<j<n),Ai和Aj的差异值大于相似值。**差异值:**A、B转换成二进制后,对于二进制的每一位,对应位置的bit值不相同则为1,否则为0;**相似值:**A、B转换成二进制后,对于二进制的每一位,对应位置的bit值都为1则为1,否则为0;假设A=5,B=3;满足条件的分别是(0,1)(0,3)(1,2)(2,3),共4对。A与B的差异值十进制等于6,相似值十进制等于1,满足条件。数据范围:1<=n<=105,1<=A[i]<230。

2025-12-05 14:56:29 256

原创 【LeetCode 热题100道笔记】数据流的中位数

中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。例如 arr = [2,3,4] 的中位数是 3 。例如 arr = [2,3] 的中位数是 (2 + 3) / 2 = 2.5 。实现 MedianFinder 类:MedianFinder() 初始化 MedianFinder 对象。void addNum(int num) 将数据流中的整数 num 添加到数据结构中。double findMedian() 返回到目前为止所有元素的中位数。与实际答案相差

2025-09-08 15:22:21 722

原创 【LeetCode 热题100道笔记】数组中的第K个最大元素

该算法通过"剪枝"避免了对无关区间的处理,相比全排序(O(n log n))更高效,尤其适合大规模数据。利用快速排序的分治思想,无需完全排序数组,通过分区操作定位第k大元素,平均时间复杂度可达O(n)。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。输入: [3,2,3,1,2,4,5,5,6], k = 4。输入: [3,2,1,5,6,4], k = 2。

2025-09-08 15:15:02 383

原创 【LeetCode 热题100道笔记】柱状图中最大的矩形

算法,核心思想是:对于每个柱子,找到其左侧和右侧第一个高度小于它的柱子,以当前柱子高度为矩形高度,两侧边界距离为宽度,计算面积并更新最大值。通过单调栈可高效确定每个柱子的左右边界,避免暴力枚举过高的时间开销。给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。输入:heights = [2,1,5,6,2,3]求在该柱状图中,能够勾勒出来的矩形的最大面积。解释:最大的矩形为图中红色区域,面积为 10。输入: heights = [2,4]

2025-09-08 14:40:05 379

原创 【LeetCode 热题100道笔记】寻找两个正序数组的中位数

采用二分查找法,通过在较短数组上划分左右两部分,找到两个数组的“分割线”,使得分割线左侧的所有元素均小于等于右侧的所有元素。该方法时间复杂度为O(log(min(m,n))),满足O(log(m+n))的要求。请你找出并返回这两个正序数组的 中位数。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]解释:合并数组 = [1,2,3] ,中位数 2。

2025-09-08 14:30:02 844

原创 【LeetCode热题100道笔记】环形链表 II

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。采用Floyd判圈算法(快慢指针法),通过两个阶段高效定位链表的入环节点:首先用快慢指针判断链表是否有环,若有环则利用数学特性找到环的入口节点。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。解释:链表中没有环。

2025-09-08 14:21:00 1051

原创 【LeetCode 热题100道笔记】寻找重复数

基于“鸽巢原理”(n+1个元素放入n个“鸽巢”,必存在重复),先通过排序将相同元素聚集,再遍历数组找到连续相等的元素,该元素即为唯一重复值。此方法无需修改原数组(排序会生成临时空间,而非修改输入数组本身),且额外空间仅为排序所需的常数级(取决于排序实现,本题代码满足O(1)额外空间要求),但时间复杂度受排序影响。,映射必然会形成环形环(重复值是环的入口,被多个索引指向)。给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。

2025-09-08 12:00:51 815

原创 【LeetCode 热题100道笔记】下一个排列

如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1]。而 arr = [3,2,1] 的下一个排列是 [1,2,3] ,因为 [3,2,1] 不存在一个字典序更大的排列。类似地,arr = [2,3,1] 的下一个排列是 [3,1,2]。例如,arr = [1,2,3] 的下一个排列是 [1,3,2]。输出:[1,3,2]

2025-09-08 10:16:47 564

原创 【LeetCode 热题100道笔记】多数元素

这是满足“时间复杂度O(n)、空间复杂度O(1)”的最优方案。核心逻辑基于“多数元素出现次数>⌊n/2⌋”的特性:通过“计数抵消”机制,让不同元素两两抵消,最终未被抵消且剩余的元素必然是多数元素(因多数元素数量超过一半,无法被其他元素完全抵消)。给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1) 的算法解决此问题。输入:nums = [2,2,1,1,1,2,2]

2025-09-08 09:39:47 333

原创 【LeetCode 热题100道笔记】只出现一次的数字

解决问题,这是满足“线性时间复杂度(O(n))”和“常量额外空间(O(1))”的最优方案。核心逻辑是:异或运算对相同数字计算结果为0,对0和单个数字计算结果为该数字,通过将数组中所有元素依次异或,最终结果即为只出现一次的元素。给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。除了某个元素只出现一次以外,其余每个元素均出现两次。输入:nums = [4,1,2,1,2]输入:nums = [2,2,1]输入:nums = [1]

2025-09-08 09:21:27 336

原创 【LeetCode 热题100道笔记】编辑距离

给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)示例 2:输入:word1 = “intention”, word2 = “execution”输出:5解释:in

2025-09-07 19:18:10 383

原创 【LeetCode 热题100道笔记】 最长公共子序列

核心逻辑是:若两个字符串的当前字符相等,说明该字符可构成公共子序列的一部分,其长度为“前一个字符位置的公共子序列长度+1”;若字符不相等,则当前公共子序列长度取“忽略第一个字符串当前字符的长度”与“忽略第二个字符串当前字符的长度”中的较大值,以此逐步计算出最长公共子序列的长度。给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。解释:两个字符串没有公共子序列,返回 0。

2025-09-07 19:13:27 394

原创 【LeetCode 热题100道笔记】 最长回文子串

采用中心扩展法的思路:回文子串具有中心对称的特性,可通过遍历每个可能的中心(包括单个字符和两个相同字符),向两侧扩展检查最长的回文子串。这种方法避免了暴力枚举所有子串的高时间开销,更高效地找到最长回文子串。,其核心思路是:从最长可能的子串长度开始,依次检查所有可能的子串是否为回文,一旦找到第一个回文子串就直接返回(因为是从最长开始检查的)。从最长可能的子串长度开始,依次检查所有可能的子串是否为回文,一旦找到第一个回文子串就直接返回(因为是从最长开始检查的)。解释:“aba” 同样是符合题意的答案。

2025-09-07 19:08:17 301

原创 【LeetCode 热题100道笔记】最小路径和

采用动态规划(DP)思想:由于机器人仅能向右或向下移动,到达网格中某位置的最小路径和,取决于“从上方位置到达此处的路径和”与“从左方位置到达此处的路径和”中的较小值,再加上当前位置的数字。给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。输入:grid = [[1,3,1],[1,5,1],[4,2,1]]输入:grid = [[1,2,3],[4,5,6]]解释:因为路径 1→3→1→1→1 的总和最小。

2025-09-07 18:57:11 342

原创 【LeetCode 热题100道笔记】不同路径

采用动态规划(DP)思想:由于机器人只能向右或向下移动,到达网格中某一位置的路径数等于到达其正上方位置的路径数加上到达其正左方位置的路径数之和。通过构建二维DP表存储每个位置的路径数,可高效计算出从起点到终点的所有不同路径。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。从左上角开始,总共有 3 条路径可以到达右下角。输入:m = 3, n = 7。输入:m = 3, n = 2。输入:m = 7, n = 3。输入:m = 3, n = 3。

2025-09-07 18:51:20 351

java连接sqlserver2008驱动包jar

java使用jdbc连接sql servel 2008所用驱动包

2014-06-19

嵌入式C++语言精华文章集锦

嵌入式C++语言精华文章集锦 详细生动解析c++的嵌入式开发的经验和过程环节

2013-10-16

空空如也

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

TA关注的人

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