算法练习7
1. 字母异位词分组题目要求将互为字母异位词的字符串放入同一组。例如[eat, tea, tan, ate, nat, bat]可以分为[[eat, tea, ate], [tan, nat], [bat]]核心思路字母异位词中每种字符出现的次数相同。将字符串排序后互为异位词的字符串一定会得到同一个结果eat - aet tea - aet ate - aet使用HashMapkey排序后的字符串 value具有相同 key 的原字符串列表复杂度设字符串平均长度为k字符串数量为n时间复杂度O(n × k log k) 空间复杂度O(n × k)2. 环形链表判断一个链表中是否存在环。3 - 2 - 0 - -4 ^ | |_________|核心思路快慢指针定义两个指针slow每次走 1 步 fast每次走 2 步无环fast最终会到达null有环fast会在环中追上slow两个指针会指向同一个节点。while (fast ! null fast.next ! null) { slow slow.next; fast fast.next.next; if (slow fast) { return true; } }复杂度时间复杂度O(n) 空间复杂度O(1)3. 最长回文子串在字符串中找到最长的回文子串。输入babad 输出bab 或 aba 输入cbbd 输出bb核心思路中心扩展回文串有两种中心奇数长度aba 中心是 b 偶数长度abba 中心在两个 b 之间因此每个位置都需要尝试两次扩展expandAroundCenter(s, i, i); // 奇数长度 expandAroundCenter(s, i, i 1); // 偶数长度扩展条件left 0 right s.length() s.charAt(left) s.charAt(right)起始下标计算当回文长度为len当前左中心为i时start i - (len - 1) / 2;这条公式能统一处理奇数长度与偶数长度回文。复杂度时间复杂度O(n²) 空间复杂度O(1)4. 零钱兑换给定硬币面额coins和金额amount求凑出目标金额所需的最少硬币数。无法凑出时返回-1。coins [1, 2, 5] amount 11 答案3 解释5 5 1为什么不能贪心coins [1, 3, 4] amount 6 贪心4 1 1需要 3 枚 最优3 3只需要 2 枚因此不能只优先选择面额最大的硬币。核心思路一维动态规划定义dp[x]凑出金额 x 所需的最少硬币数量初始状态dp[0] 0;其他位置先初始化为不可能达到的大值Arrays.fill(dp, amount 1);状态转移dp[currentAmount] Math.min( dp[currentAmount], dp[currentAmount - coin] 1 );含义是最后选择一枚coin后前面先凑出currentAmount - coin。复杂度时间复杂度O(amount × coins.length) 空间复杂度O(amount)5. 买卖股票的最佳时机只能买入一次、卖出一次求最大利润。prices [7, 1, 5, 3, 6, 4] 答案5 第 2 天以 1 买入第 5 天以 6 卖出。核心思路维护历史最低价格遍历每一天的股价时维护minPrice截至当前日期的最低买入价格 maxProfit截至当前日期的最大利润for (int price : prices) { minPrice Math.min(minPrice, price); maxProfit Math.max(maxProfit, price - minPrice); }当出现一个更低价格时它将成为后续更好的买入机会当前价格则可以尝试作为卖出价格。复杂度时间复杂度O(n) 空间复杂度O(1)6. 除自身以外数组的乘积返回数组answer其中answer[i] 除 nums[i] 外其余元素的乘积输入[1, 2, 3, 4] 输出[24, 12, 8, 6]核心思路前缀积 后缀积定义left[i]i 左边所有元素的乘积 right[i]i 右边所有元素的乘积因此answer[i] left[i] × right[i]例如nums [1, 2, 3, 4] left [1, 1, 2, 6] right [24, 12, 4, 1] answer [24, 12, 8, 6]边界位置left[0] 1; right[n - 1] 1;因为没有元素参与相乘时乘积定义为1。复杂度时间复杂度O(n) 空间复杂度O(n)还可以进一步优化为将前缀积直接存入answer再用一个变量从右向左累乘后缀积从而将额外空间优化到O(1)。7. 最大子数组和找到一个和最大的连续子数组。输入[-2, 1, -3, 4, -1, 2, 1, -5, 4] 输出6 最大连续子数组[4, -1, 2, 1]核心思路Kadane 算法不断累加当前连续子数组的和当前累计和大于等于0继续保留当前累计和小于0它会拖累后续结果直接丢弃从后续元素重新开始。int currentSum 0; int maxSum nums[0]; for (int num : nums) { currentSum num; maxSum Math.max(maxSum, currentSum); if (currentSum 0) { currentSum 0; } }为什么不能把maxSum初始化为 0对于全负数数组[-3, -2, -5]最大连续子数组和应该是-2若初始化为0会错误返回0。复杂度时间复杂度O(n) 空间复杂度O(1)8. 合并区间将所有重叠区间合并。输入[[1,3], [2,6], [8,10], [15,18]] 输出[[1,6], [8,10], [15,18]]核心思路排序 贪心扫描先按区间左端点排序Arrays.sort(intervals, (a, b) - a[0] - b[0]);然后依次判断当前区间是否和结果中最后一个区间重叠。判断条件lastEnd currentStart若成立不重叠直接加入结果否则发生重叠更新右端点。lastEnd Math.max(lastEnd, currentEnd);端点相接也需要合并[1, 4] 和 [4, 5]两者在端点4相接结果应为[1, 5]因此“不重叠”的条件必须是lastEnd currentStart而不能写成lastEnd currentStart复杂度排序O(n log n) 扫描O(n) 总时间复杂度O(n log n) 空间复杂度O(n)

相关新闻

跨境业务踩坑记:那些年被文档翻译耽误的生意

跨境业务踩坑记:那些年被文档翻译耽误的生意

去年初,一个做外贸的朋友接到一笔潜在订单。海外客户发来了一份50页的RFQ询价文件——英文和法语掺杂,涉及产品规格、交付条款、付款条件等等。朋友团队花了两天翻译和理解这份文件。等他们把报价和方案做出来回复的时候,客户说已经签了别家。…

2026/8/6 8:43:08 阅读更多 →
实训交通沙盘的基本参数

实训交通沙盘的基本参数

基本要求笔下科技的该V2X车路协同模拟无人驾驶沙盘实训平台主要包括:展台、钢化围挡、沙盘模型、景观灯光、建筑灯光、交通信号灯、信号机组件、交通设备标识牌。二、沙盘配置及技术参数沙盘外形尺寸:共计12平方。各模块具有足够的强度和刚度&#xff0c…

2026/8/6 8:42:07 阅读更多 →
44-应用当前版本切换的治理意义:为什么“当前基线”必须被显式维护

44-应用当前版本切换的治理意义:为什么“当前基线”必须被显式维护

适合对象:关注版本基线、发布切换、回归对照、应用治理的测试平台负责人和后端工程师。 先说结论 应用当前版本切换的治理意义不是一个孤立功能,而是精准测试平台里帮助团队做判断的一环。 它重点解决的是:为什么“当前基线”必须被显式维护。 用大白话讲,版本能力的重点…

2026/8/6 8:42:07 阅读更多 →

最新新闻

别再瞎降重!✅这款靠谱AI论文软件,才是论文降重的正确打开方式

别再瞎降重!✅这款靠谱AI论文软件,才是论文降重的正确打开方式

写论文最崩溃的瞬间:查重一飘红,改完又超标,降重完逻辑全乱😭 很多同学为了降重,换了无数个AI论文工具,结果踩坑不断!要么机械换词、句子不通顺,要么改完数据出错、专业术语乱改&am…

2026/8/6 9:45:42 阅读更多 →
拯救者笔记本性能调校神器:Lenovo Legion Toolkit完全指南

拯救者笔记本性能调校神器:Lenovo Legion Toolkit完全指南

拯救者笔记本性能调校神器:Lenovo Legion Toolkit完全指南 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 你是否…

2026/8/6 9:45:42 阅读更多 →
铝件 / 钢件加工打刀缸区分,台湾钰腾不同工况选型思路

铝件 / 钢件加工打刀缸区分,台湾钰腾不同工况选型思路

搞机加工的兄弟应该都有体会:同样一台加工中心,干铝件和干钢件,对打刀缸的要求完全不一样。铝件怕打刀力太大把拉爪顶坏,钢件怕打刀力不够刀松不开。选错了,轻则拉爪轴承提前报废,重则掉刀撞主轴。 今天结合…

2026/8/6 9:45:42 阅读更多 →
常熟服务业 GEO 运营笔记,依托豆顶顶深耕苏州县域市场

常熟服务业 GEO 运营笔记,依托豆顶顶深耕苏州县域市场

先问个问题:你在豆包、DeepSeek里搜过“常熟财税咨询哪家好”或者“常熟ISO认证机构推荐”吗? 一个常熟做财税咨询的朋友试了一下,回来脸色不太好看。他在本地做了八年,服务过几百家企业,结果AI推荐了五家同行&#xf…

2026/8/6 9:45:42 阅读更多 →
智慧树自动刷课插件:3分钟实现高效学习的智能助手终极指南

智慧树自动刷课插件:3分钟实现高效学习的智能助手终极指南

智慧树自动刷课插件:3分钟实现高效学习的智能助手终极指南 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 你是否曾经为了完成智慧树平台的在线课程而不得不…

2026/8/6 9:45:42 阅读更多 →
分布式系统故障放大效应(EM问题)的成因、排查与弹性设计实战

分布式系统故障放大效应(EM问题)的成因、排查与弹性设计实战

1. 从一次深夜告警说起:EM问题到底是什么? 凌晨两点,手机突然震动,监控大屏上一个服务接口的P99延迟曲线像坐了火箭一样直线飙升,紧接着就是一连串的“服务不可用”告警。相信很多负责线上稳定性的同学都经历过这种惊心…

2026/8/6 9:44:41 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →