
数据结构与算法
天涯若风
幽冥使者
展开
-
有效的括号
题目:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"...原创 2019-12-19 15:39:37 · 282 阅读 · 0 评论 -
整数反转
题目:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1...原创 2019-12-19 10:48:16 · 162 阅读 · 0 评论 -
两个数相加
题目:给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&g...原创 2019-12-18 21:49:26 · 358 阅读 · 0 评论 -
数字转罗马
算法核心:1. 枚举出有限的罗马数字和阿拉伯数字,并一一对应2. 通过贪心算法,每次从剩余的数字中找最大的值// 数字转罗马1public static String intToRoman2(int num) { // 阿拉伯数字和罗马数字一一对应 String [] value = new String[]{"M","CM","D","CD",...原创 2019-12-18 13:52:19 · 222 阅读 · 0 评论 -
算法-罗马转数字
下面的算法,时间复杂度O(n)思路:1. 用map存储罗马数字对应的值,时间复杂度为O(1)2. 有个规律,左侧的罗马数字对应的值小于右侧的值的话,那么认为是需要减去的值package org.apache.dubbo.common;import java.util.ArrayList;import java.util.List;import java.util....原创 2019-12-18 10:48:11 · 195 阅读 · 0 评论 -
数据结构中各种树(转)
用于备份学习使用,如有冒犯,请联系我。阅读目录1. 二叉树2. 二叉查找树3. 平衡二叉树3.1 平衡查找树之AVL树3.2 平衡二叉树之红黑树4. B树5. B+树6. B*树7. Trie树 数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见的几种树的概念和用途进行了汇总,不求严格转载 2017-08-23 09:32:18 · 408 阅读 · 0 评论 -
常见数据结构与算法整理总结
数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。下面是自己整理的常用数据结构与算法相关内容,如有错误,欢迎指出。为了便于描述,文中涉及到的代码部分都是用Java语言编写的,其实Java本身对常见的几种数据结构,线性表、栈、队列等都提供了较好的实现,就是我们经常用到的Java集合框架,有需要的原创 2017-08-23 12:51:25 · 995 阅读 · 0 评论