X客网算法

19年左神算法课程,包含基础班和进阶班,可百度网盘在线看,也可下载,下载清晰度更好,里面包含视频,源码和ppt。想要的加QQ:503746224,记得注明来意。

### 牛 Java 算法练习题及答案解析 #### 题目一:两数之和 给定一个整数数组 `nums` 和一个目标值 `target`,请找出数组中和为目标值的那两个整数,并返回他们的数组下标。 可以假设每种输入只会对应一个答案。但是,同一个元素不能被重复利用。 ##### 示例: ```plaintext 输入: nums = [2, 7, 11, 15], target = 9 输出: [0, 1] 解释: 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]. ``` ##### 解析: 为了提高效率,可以通过哈希表来存储已经遍历过的数值及其索引位置,从而可以在一次遍历过程中完成查找操作[^1]。 ```java import java.util.HashMap; import java.util.Map; public class TwoSum { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums.length; i++) { int complement = target - nums[i]; if (map.containsKey(complement)) { return new int[]{map.get(complement), i}; } map.put(nums[i], i); } throw new IllegalArgumentException("No two sum solution"); } } ``` #### 题目二:反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 ##### 示例: ```plaintext 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL ``` ##### 解析: 通过迭代的方法实现链表反转,在每次循环中改变当前节点指向前驱节点的方向即可。 ```java class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public class ReverseLinkedList { public ListNode reverseList(ListNode head) { ListNode prev = null; while (head != null) { ListNode temp = head.next; head.next = prev; prev = head; head = temp; } return prev; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值