摘要: topKFrequent 方法:返回出现频率前 k 高的元素 这个方法通过以下步骤实现: 统计频率: 使用 HashMap 统计每个元素的出现频率。 时间复杂度:O(n),其中 n 是数组的长度。 优先级队列(最大堆): 使用优先级队列(PriorityQueue)来存储频率信息,队列按照频率降序排 阅读全文
posted @ 2025-01-26 02:37 123木头人-10086 阅读(71) 评论(0) 推荐(0)
摘要: 逆波兰表达式求值(150. Evaluate Reverse Polish Notation) 功能 计算逆波兰表达式(后缀表达式)的值。逆波兰表达式是一种数学表达式,其中每个运算符位于其操作数之后。 实现思路 使用数组模拟栈: 遍历输入的字符串数组 tokens。 如果遇到数字,将其压入栈中。 如 阅读全文
posted @ 2025-01-25 00:05 123木头人-10086 阅读(38) 评论(0) 推荐(0)
摘要: 用栈实现队列(MyQueue) 功能描述 数据结构: 使用两个栈(list1 和 list2)来模拟一个队列的行为。 list1 用于存储新插入的元素,list2 用于反转元素顺序以实现队列的 FIFO 特性。 方法实现: push(int x): 将元素压入 list1。 如果 list1 为空且 阅读全文
posted @ 2025-01-23 23:43 123木头人-10086 阅读(40) 评论(0) 推荐(0)
摘要: 1.问题描述 实现 strStr() 函数,返回子字符串 needle 在字符串 haystack 中首次出现的位置,如果不存在,则返回 -1。题目要求实现两种算法: 暴力算法:逐个比较子串。 KMP 算法:利用前缀表(next 数组)优化匹配过程。 暴力算法 暴力算法的核心思想是逐个检查 hays 阅读全文
posted @ 2025-01-22 20:50 123木头人-10086 阅读(102) 评论(0) 推荐(0)
摘要: 反转字符串(344. Reverse String) 功能:反转一个字符数组。 优化点: 使用双指针(i 和 s.length - 1 - i)交换字符,时间复杂度为 O(n),空间复杂度为 O(1)。 代码简洁高效,无需额外优化。 //344.反转字符串 public void reverseSt 阅读全文
posted @ 2025-01-21 01:14 123木头人-10086 阅读(105) 评论(0) 推荐(0)
摘要: 1.四数之和 算法思路:采用定二移二法,先对数组进行排序,然后固定前两个数,通过双指针在剩余部分查找满足条件的两个数,使四数之和等于目标值。 优化措施: 在固定第一个数时,若当前数与后三个最小数之和大于目标值,则直接退出循环,因为后续的组合只会更大;若当前数与后三个最大数之和小于目标值,则跳过当前数 阅读全文
posted @ 2025-01-19 20:43 123木头人-10086 阅读(93) 评论(0) 推荐(0)
摘要: 两数之和(Two Sum) 问题描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 解决方案: 暴力法:使用两层嵌套循环,遍历所有可能的数对,检查它们的和是否等于目标值。时间复杂度为 O(n^2)。 哈希表法:使用哈希表存 阅读全文
posted @ 2025-01-19 01:48 123木头人-10086 阅读(108) 评论(0) 推荐(0)
摘要: 环形链表 II(142. Linked List Cycle II) 问题描述:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。 解决方案: //142.环形链表II public ListNode detectCycle(ListNode head) { ///耗时较长 阅读全文
posted @ 2025-01-18 01:26 123木头人-10086 阅读(90) 评论(0) 推荐(0)
摘要: 统一使用的结点类: class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = v 阅读全文
posted @ 2025-01-17 19:44 123木头人-10086 阅读(123) 评论(0) 推荐(0)
摘要: //977.有序数组的平方.给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 public int[] sortedSquares(int[] nums) { ///暴力算法 for (int i = 0; i < nums.leng 阅读全文
posted @ 2025-01-16 23:58 123木头人-10086 阅读(90) 评论(0) 推荐(0)