当前位置: 首页 > news >正文

Java算法题

在技术笔试中,算法题主要考察对基础数据结构(数组、链表、树、栈 / 队列、图)的掌握,以及经典算法思想(动态规划、贪心、查找排序、回溯)的应用。以下按数据结构 + 算法思想分类,整理高频笔试算法题,包含题目描述、核心思路与代码实现(以 Java/Python 为主,兼顾可读性与效率)。

一、数组与字符串(笔试高频)

数组与字符串是最基础的数据结构,常结合 “双指针”“哈希表”“排序” 等技巧,题目难度多为基础 - 中等,是笔试必拿分部分。

1. 两数之和(LeetCode 1)

题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回它们的数组下标(假设数组中只存在唯一解,且元素不能重复使用)。

解题思路
  • 暴力法:双重循环遍历,时间复杂度 O (n²)(不推荐,笔试易超时)。
  • 优化法(哈希表):用哈希表存储 “元素值→下标”,遍历数组时,检查 target - 当前元素 是否在哈希表中,存在则返回下标,否则存入当前元素。时间复杂度 O (n),空间复杂度 O (n)(推荐)。
代码实现(Java)

java

运行

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 solution");
}

2. 三数之和(LeetCode 15)

题目描述

在技术笔试中,算法题主要考察对基础数据结构(数组、链表、树、栈 / 队列、图)的掌握,以及经典算法思想(动态规划、贪心、查找排序、回溯)的应用。以下按数据结构 + 算法思想分类,整理高频笔试算法题,包含题目描述、核心思路与代码实现(以 Java/Python 为主,兼顾可读性与效率)。

一、数组与字符串(笔试高频)

数组与字符串是最基础的数据结构,常结合 “双指针”“哈希表”“排序” 等技巧,题目难度多为基础 - 中等,是笔试必拿分部分。

1. 两数之和(LeetCode 1)

题目描述

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回它们的数组下标(假设数组中只存在唯一解,且元素不能重复使用)。

解题思路
  • 暴力法:双重循环遍历,时间复杂度 O (n²)(不推荐,笔试易超时)。
  • 优化法(哈希表):用哈希表存储 “元素值→下标”,遍历数组时,检查 target - 当前元素 是否在哈希表中,存在则返回下标,否则存入当前元素。时间复杂度 O (n),空间复杂度 O (n)(推荐)。
代码实现(Java)

java

运行

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 solution");
}

2. 三数之和(LeetCode 15)

题目描述

给你一个包含 n 个整数的数组 nums,判断是否存在三个元素 a, b, c 使得 a + b + c = 0?请找出所有和为 0 且不重复的三元组(答案中不允许包含重复的三元组)。

解题思路
  • 核心:排序 + 双指针(避免三重循环,去重是关键):

给你一个包含 n 个整数的数组 nums,判断是否存在三个元素 a, b, c 使得 a + b + c = 0?请找出所有和为 0 且不重复的三元组(答案中不允许包含重复的三元组)。

解题思路
  • 核心:排序 + 双指针(避免三重循环,去重是关键):
    1. 先对数组排序(便于去重和双指针移动);
    2. 固定第一个元素 nums[i],若 nums[i] &g
http://www.dtcms.com/a/483968.html

相关文章:

  • 文章写作网站网站建设推广公司排名
  • 上海企业模板建站苏州新闻今天最新消息新闻事件
  • 网站质量度网页设计图片素材网
  • 10月14日星期二今日早报简报微语报早读
  • 网站流量功能更怎么做自己做的影视会员网站违法么
  • 网站设计弹窗西安免费做网站公司
  • 网站建设深网站开发图片侵权
  • 【每日一K】altera 封装数据
  • 建设银行网站字体网站开发必学书籍
  • 济南seo优化公司助力网站腾飞推广平台排行榜有哪些
  • OWL 的 t-* 与 Vue3 的 v-* 全面对比
  • C#项目连接S7-PLCSIM Advanced读写操作
  • Linux中的wheel介绍以及用法
  • 统计期刊介绍——Journal of Statistical Planning and Inference(JSPI)
  • 网站后台 刷新做网站完整过程
  • 泰州企业模板建站北京广告网站建设
  • MySQL8数据库高级特性-第二章
  • 【Python基础】Python路径操作全解析:os.path、glob与pathlib从入门到精通
  • 男人女人做羞羞事网站如皋网站建设招标
  • 在线相册jsp网站开发与设计徐州泰安抖音代运营
  • 网站seo优化步骤给我一个用c 做的网站
  • 重庆建设造价信息网站深圳带停机坪的别墅
  • 2026计算机毕设选题推荐:基于SpringBoot和Vue的电动车租赁平台系统(附源码和数据库)
  • 建湖做网站需要多少钱wordpress缓存图片
  • 济宁网站建设 中企动力临沂wordpress阻止访问
  • 南京建设网站要多少钱手机网站需要域名吗
  • 基于成功率的自适应差分进化 L-SRTDE 用于 CEC 2024 竞赛
  • 企业 办公 网站模板下载企业网站制作步骤
  • 网站建设大致分哪几块天津网站开发公司
  • 怎样查网站备案人的联系方式网站开发自学时间