算法刷题
qq_15014327
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1.反转整数
题:给定一个 32 位有符号整数,将整数中的数字进行反转。 示例 1: 输入: 123 输出: 321 代码: public static int reverse(int x) { int result = 0; try { //先判断正负 StringBuilder flag = new Stri...原创 2018-11-02 21:39:53 · 138 阅读 · 0 评论 -
16.验证回文串
题:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a car" 输出: false 代码: public static boolean isPali...原创 2018-11-03 00:48:22 · 202 阅读 · 0 评论 -
15.杨辉三角II
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 3 输出: [1,3,3,1] 代码: public static List<Integer> getRow(int rowIndex) { List<List<Integer>> list = new Ar...原创 2018-11-03 00:48:43 · 200 阅读 · 0 评论 -
14.杨辉三角
题:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 代码: public List<List<Integer>> generat...原创 2018-11-03 00:48:56 · 198 阅读 · 0 评论 -
13.合并两个有序数组
题:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums...原创 2018-11-03 00:49:05 · 154 阅读 · 0 评论 -
12.删除排序链表中的重复元素
题:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1->1->2->3->3 输出: 1->2->3 代码: /** * Definition for singly-linked list. * public class List...原创 2018-11-03 00:49:12 · 123 阅读 · 0 评论 -
11.加一
题:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。 ...原创 2018-11-03 00:49:20 · 152 阅读 · 0 评论 -
10.最后一个单词的长度
题:给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 输入: "Hello World" 输出: 5 代码: public static int lengthOfLastWord(String s) { if (s == null || s.trim(...原创 2018-11-03 00:49:27 · 137 阅读 · 0 评论 -
9.搜索插入位置
题:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 代码: public static int searchInsert(int[] nums, int target) { int min = target; for (in...原创 2018-11-03 00:48:04 · 129 阅读 · 0 评论 -
8.实现strStr()
题:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", needle = "bba" 输出: -...原创 2018-11-02 21:55:34 · 177 阅读 · 0 评论 -
7.移除元素
题:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1: 给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前...原创 2018-11-02 21:53:10 · 404 阅读 · 0 评论 -
6. 删除排序数组中的重复项
题:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1: 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。 代码: ...原创 2018-11-02 21:50:28 · 145 阅读 · 0 评论 -
5.合并两个有序链表
题:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 代码: class ListNode { int val; ListNode next; ListNode(int ...原创 2018-11-02 21:48:17 · 138 阅读 · 0 评论 -
4.最长公共前缀
题:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有原创 2018-11-02 21:45:48 · 177 阅读 · 0 评论 -
3.罗马数字转整数
题:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的...原创 2018-11-02 21:44:31 · 332 阅读 · 0 评论 -
2.回文数
题:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 代码: public static boolean isPalindrome(int x)...原创 2018-11-02 21:41:26 · 374 阅读 · 0 评论 -
17.只出现一次的数字
题:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 代码: public int singleNumber(int[] nums) { ...原创 2018-11-03 00:48:13 · 163 阅读 · 0 评论
分享