首页 > 编程语言 >Java 100道算法

Java 100道算法

时间:2024-08-13 15:50:18浏览次数:8  
标签:Java 实现 链表 算法 查找 二叉树 数组 字符串 100

数组相关

  1. 查找数组中的最大和最小元素
  2. 实现数组的反转
  3. 查找数组中的第二大元素
  4. 从数组中删除重复元素
  5. 合并两个有序数组
  6. 找到数组中和为指定值的两个数
  7. 实现一个动态数组(ArrayList)
  8. 找到数组中出现次数超过一半的元素
  9. 寻找数组的连续子数组和为定值
  10. 查找数组中的峰值元素

字符串相关

  1. 实现字符串的反转
  2. 判断一个字符串是否为回文
  3. 统计字符串中每个字符的出现次数
  4. 查找字符串中的第一个不重复字符
  5. 实现字符串的全排列
  6. 查找两个字符串的最长公共子串
  7. 判断两个字符串是否为异位词
  8. 实现字符串的匹配(KMP算法)
  9. 压缩字符串
  10. 计算两个字符串的编辑距离

链表相关

  1. 反转链表
  2. 查找链表的中间节点
  3. 删除链表中的重复节点
  4. 合并两个有序链表
  5. 检查链表是否有环
  6. 删除链表中的倒数第N个节点
  7. 在链表中找到环的入口点
  8. 对链表进行排序
  9. 合并K个有序链表
  10. 交换链表中的相邻节点

树相关

  1. 实现二叉树的前序遍历
  2. 实现二叉树的中序遍历
  3. 实现二叉树的后序遍历
  4. 实现二叉树的层序遍历
  5. 查找二叉树的最大深度
  6. 判断一棵树是否为二叉搜索树
  7. 查找二叉搜索树的最小值和最大值
  8. 查找二叉树的最近公共祖先
  9. 求二叉树的所有路径
  10. 将二叉搜索树转换为双向链表

排序和搜索

  1. 实现冒泡排序
  2. 实现选择排序
  3. 实现插入排序
  4. 实现归并排序
  5. 实现快速排序
  6. 实现堆排序
  7. 实现二分查找
  8. 在旋转排序数组中查找目标值
  9. 查找第K大的元素
  10. 查找缺失的数字

动态规划

  1. 斐波那契数列
  2. 求解背包问题
  3. 找到数组中的最长递增子序列
  4. 找到两个字符串的最长公共子序列
  5. 找到硬币组合的最小数目
  6. 判断是否能分割数组为和相等的两部分
  7. 最长回文子串
  8. 不同路径数量
  9. 编辑距离
  10. 房屋偷盗问题

数学问题

  1. 计算阶乘
  2. 判断一个数是否为质数
  3. 计算两个数的最大公约数
  4. 实现一个幂函数
  5. 判断一个数是否为回文数
  6. 找到一个数的平方根
  7. 计算两个数的最小公倍数
  8. 判断一个数是否为丑数
  9. 求解杨辉三角形
  10. 找到一个数的所有因子

其他

  1. 实现LRU缓存机制
  2. 查找图中的连通分量
  3. 实现深度优先搜索(DFS)
  4. 实现广度优先搜索(BFS)
  5. 判断两个二叉树是否相同
  6. 找到二叉树中的所有叶子节点
  7. 计算二叉树的直径
  8. 生成括号的所有合法组合
  9. 找到N皇后问题的所有解
  10. 求解汉诺塔问题
  11. 实现一个线程安全的单例模式
  12. 实现一个生产者-消费者模型
  13. 计算数组中逆序对的数量
  14. 检查字符串中的括号是否匹配
  15. 实现字符串的全组合
  16. 查找链表中的倒数第K个节点
  17. 实现链表的分区
  18. 判断一个链表是否为回文链表
  19. 实现一个队列(FIFO)
  20. 实现一个栈(LIFO)
  21. 找到数组中的第一个缺失正数
  22. 找到N个数中出现次数超过N/3的元素
  23. 在矩阵中找到目标值
  24. 查找最长的无重复字符的子串
  25. 查找数组中连续子数组的最大和
  26. 查找二维矩阵中的峰值
  27. 找到一个字符串中所有异位词的起始索引
  28. 实现Trie(前缀树)
  29. 实现最短路径算法(如Dijkstra算法)
  30. 解决约瑟夫环问题
 

标签:Java,实现,链表,算法,查找,二叉树,数组,字符串,100
From: https://www.cnblogs.com/Jomini/p/18357090

相关文章

  • Java栈溢出|内存泄漏|内存溢出
    Java虚拟机栈是线程私有的,它的生命周期和线程同步一个线程每执行到一个方法,JVM就会创建一个栈帧(用于存储基本数据类型、对象指针和返回值等),并将栈帧压入栈中。代码示例:publicclassExample{publicstaticvoidmain(String[]args){Exampleexample=newExa......
  • 人工智能算法,图像识别技术;基于大语言模型的跨境商品识别与问答系统;图像识别
    目录一.研究背景二,大语言模型介绍三,数据采集与预处理 商品识别算法四. 跨境商品问答系统设计五.需要源码联系一.研究背景 在当今全球化的背景下,跨境电商行业迅速发展,为消费者提供了更广泛的购物选择和更便利的购物方式。然而,随着跨境电商平台上商品种类的不断......
  • java基础-封装
    封装(数据的隐藏)私有属性实现方式:get/set封装(Encapsulation)是面向对象编程中的一个核心概念,它指的是将对象的内部状态(即数据)和行为(即方法)隐藏起来,只暴露给外部一些必要的接口,以保护对象的完整性和安全性。通俗理解:想象一个遥控器:按钮:这是你能看到和操作的部分,通过按......
  • 24-08-08 JavaSE Map集合
    24-08-08javaSEMap集合Map接口的特点Map与Collection并列存在。用于保存具有映射关系的数据:Key-Value(双列元素)Map中的key和value可以是任何引用类型的数据,会封装到HashMap$Node对象中3.Map中的key不允许重复,原因和HashSet一样,前面分析过源码.Map......
  • Java String常用类、数组、日期时间
    JavaString类一、创建字符串1、简单方式:Stringstr="seventeen";2、用构造函数创建字符串:Stringstr2=newString("seventeen");String创建的字符串存储在公共池中,而new创建的字符串对象在堆上String类是不可改变的,所以一旦创建了String对象,那它的值就无法改变了如果需......
  • JavaScript函数
    定义函数形如functionabs(x){if(x>=0){returnx;}else{return-x;}}或varabs=function(x){if(x>=0){returnx;}else{return-x;}};如上所表达的函数为一个匿名函数,它没有函数名,该......
  • 【原创】java+swing+mysql校园表白墙系统设计与实现
    个人主页:程序员杨工个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战开发背景:昨天七夕,大家都去约会了,趁着有时间写了一个校园表白墙系统。在校园环境中,学生们正处于青春期,情感丰富且......
  • 【原创】java+swing+mysql简单图书信息管理系统设计与实现
    个人主页:程序员杨工个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战开发背景:编程小白们刚入门,尤其在学了一点java的基础之后,想通过自己动手来实现一个比较基础的小项目,由于编程经验......
  • 代码随想录算法训练营第 42 天 |LeetCode 188.买卖股票的最佳时机IV LeetCode309.最佳
    代码随想录算法训练营Day42代码随想录算法训练营第42天|LeetCode188.买卖股票的最佳时机IVLeetCode309.最佳买卖股票时机含冷冻期LeetCode714.买卖股票的最佳时机含手续费目录代码随想录算法训练营前言LeetCode188.买卖股票的最佳时机IVLeetCode309.最佳买卖......
  • 问题 IDEA创建Sping项目只能勾选17和21,却无法使用Java8
    想创建一个springboot项目,本地安装jdk版本为1.8,但是在使用SpringInitializr创建项目时,版本只能选择21或17在JDK为1.8的情况下,无论选择Java17版本或者21版本时,都会报错。Java17和Java8(JDK1.8)的区别版本号:Java17是JavaSE17的版本,而JDK1.8是JavaSE8的版本。发......