尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
算法练习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)
RELATED

相关推荐

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

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

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

📅 2026/9/25 14:51:34
Python实战信用评分卡建模:从逻辑回归到业务部署全流程解析

Python实战信用评分卡建模:从逻辑回归到业务部署全流程解析

1. 项目概述:从业务需求到模型落地信用评分卡,听起来像是一个金融黑匣子,但本质上,它是一套将借款人的各种信息(比如年龄、收入、负债、历史还款记录)转化为一个直观分数的规则系统。这个分数,直…

📅 2026/9/20 13:32:51
本地AI代码助手终极配置指南:从模型量化到IDE集成的全链路优化

本地AI代码助手终极配置指南:从模型量化到IDE集成的全链路优化

1. 项目概述:为什么你需要一个“终极”的AI代理配置方案?如果你已经尝试过在本地运行各种开源大语言模型,或者用过一些AI代理框架,大概率经历过这样的场景:兴致勃勃地克隆了一个GitHub项目,按照README一顿操…

📅 2026/9/4 5:33:52
MORE NEWS

更多资讯

📰

Phoenix 中 OTel contextvars 与 async 边界的实战避坑指南:为何不在异步生成器清理路径里使用 contextvars

可观测性AI 评测LLMOpsAI 应用人工智能 【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix 点击查看 免费下载 本文是 Phoenix(AI Observability & Evaluation 平台&#xf…

📰

云栖大会第一印象:机器智能的经济学

机器智能是一个全新的物种,它正在把“思考”变成一种可以规模化供给的商品。作者 | 高 飞今天2026 年云栖大会第一天的日程才结束,从阿里巴巴集团 CEO 吴泳铭的演讲出发,对主论坛写一下第一印象解读。虽然这是一个毫无疑问的技术峰会&#…

📰

Java工资管理系统课设:数据库设计与事务实战

简介:本资源是一份面向高校数据库课程设计的Java企业级工资管理系统完整实践文档,适用于计算机、软件工程等专业本科生完成《数据库原理及应用》课程设计任务。文档系统覆盖需求分析、E-R建模、数据库逻辑设计(含员工、基本工资、津贴三张核心…

📰

Mac访达缩略图不显示?从缓存到QuickLook的完整修复指南

开篇先讲一个八成Mac用户都撞见过的场景:今天打开访达准备找图片,结果一排排文件图标全变成了白色占位符,图片缩略图、视频预览、PDF封面一个都不显示。你以为是文件坏了,点开内容却一切正常,再按一下空格想快速预览&a…

📰

轻量级CRM自建实战:Node.js+Electron+SQLite完整指南

1. 项目背景:为什么我在2024年决定自建一个CRM先说说我为什么捣鼓这个项目。事情起因很简单:去年年初给朋友的一个小团队做客服系统选型,试了一圈市面上的CRM,要么是定价贵得离谱,按坐席数收费,一个账号一年…

📰

昇腾Atlas 300V部署YOLO:从环境搭建到推理优化全指南

1. 这个叫 atlas 的项目到底是什么这两年搞深度学习部署的朋友,多少都听过atlas这个名字。但说实话,我第一次看到的时候也疑惑过:它到底是一个软件框架、一个硬件型号、还是一套完整的部署方案?后来真正上手才发现,atl…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬