标签:算法

  • leetCode-3-Longest-Substring-Without-Repeating-Characters

    题目描述(中等难度) 给定一个字符串,找到没有重复字符的最长子串,返回它的长度。 解法一 简单粗暴些,找一个最长子串,那么我们用两个循环穷举所有子串,然后再用一个函数判断该子串中有…

    2021年4月7日 748
  • leetCode-4-Median-of-Two-Sorted-Arrays

    题目描述(困难难度) 已知两个有序数组,找到两个数组合并后的中位数。 解法一 简单粗暴,先将两个数组合并,两个有序数组的合并也是归并排序中的一部分。然后根据奇数,还是偶数,返回中位…

    2021年4月7日 681
  • leetCode-5-Longest-Palindromic-Substring

    题目描述(中等难度) 给定一个字符串,输出最长的回文子串。回文串指的是正的读和反的读是一样的字符串,例如 "aba","ccbbcc"。 解…

    2021年4月7日 717
  • leetCode-6-ZigZag-Conversion

    题目描述(中等难度) 就是给定一个字符串,然后按写竖着的 「z」的方式排列字符,就是下边的样子。 然后按行的方式输出每个字符,第 0 行,第 1 行,第 2 行 …. …

    2021年4月7日 841
  • leetCode-7-Reverse-Integer

    题目描述(简单难度) 很简单,就是输入整数,输出它的倒置。 第一反应就是, 取余得到个位数,然后除以 10 去掉个位数,然后用一个变量保存倒置的数。 public int reve…

    2021年4月7日 806
  • leetCode-8-String-to-Integer

    题目描述(中等难度) 将一个字符串转为整型。 这道题,难度其实不大,和上道题有很多重合的地方。整体的思路就是遍历字符串,然后依次取出一个字符就可以了。无非是考虑一些特殊情况,还有就…

    2021年4月7日 728
  • leetCode-9-Palindrome-Number

    题目描述(简单难度) 判断是不是回文数,负数不是回文数。 解法一 把 int 转成字符串,然后判断是否是回文串做就可以了,缺点是需要额外的空间存储字符串,当然题目也告诉了不能这样,…

    2021年4月7日 693
  • leetCode-10-Regular-Expression-Matching

    题目描述(困难难度) 一个简单规则的匹配,「点.」代表任意字符,「星号*」 代表前一个字符重复 0 次或任意次。 解法一 递归 假如没有通配符 * ,这道题的难度就…

    2021年4月7日 772
  • leetCode-11-Container-With-Most-Water

    题目描述(中等难度) 每个数组代表一个高度,选两个任意的柱子往里边倒水,能最多倒多少水。 解法一 暴力解法 直接遍历任意两根柱子,求出能存水的大小,用一个变量保存最大的。 publ…

    2021年4月7日 743
  • leetCode-12-Integer-to-Roman

    题目描述(中等难度) 把数字转换成罗马数字,正常情况就是把每个字母相加,并且大字母在前,小字母在后,上边也介绍了像 4 和 9 那些特殊情况。 解法一 这个是自己的解法,主要思想就…

    2021年4月7日 807
  • 十大经典排序算法:1冒泡排序

    冒泡排序 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行…

    2021年4月7日 1.21K
  • 十大经典排序算法:2选择排序

    选择排序 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。 1. …

    2021年4月7日 952
  • 十大经典排序算法:3插入排序

    插入排序 插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工…

    2021年4月7日 870
  • 十大经典排序算法:4希尔排序

    希尔排序 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的: 插入排序在对几乎已…

    2021年4月7日 827
  • 十大经典排序算法:5归并排序

    归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 作为一种典型的分…

    2021年4月7日 890
  • 十大经典排序算法:6快速排序

    快速排序 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上…

    2021年4月7日 785
  • 十大经典排序算法:7堆排序

    堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节…

    2021年4月7日 874
  • 十大经典排序算法:8计数排序

    计数排序 计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 1. 动图演示 2. J…

    2021年4月7日 846
  • 十大经典排序算法:9桶排序

    桶排序 桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。为了使桶排序更加高效,我们需要做到这两点: 在额外空间充足的情况下,尽量增大桶的数…

    2021年4月7日 730
  • 十大经典排序算法:10基数排序

    基数排序 基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排…

    2021年4月7日 1.17K
QR code