LeetCode
CarryKai的凯
这个作者很懒,什么都没留下…
展开
-
LeetCode345 反转字符串中的元音字母Java
LeetCode345 反转字符串中的元音字母编写一个函数,以字符串作为输入,反转该字符串中的元音字母。示例 1:输入:"hello"输出:"holle"示例 2:输入:"leetcode"输出:"leotcede"提示:元音字母不包含字母 "y" 。class Solution { public String reverseVowels(String s) { int n = s.length(); ...原创 2021-05-15 22:51:55 · 151 阅读 · 0 评论 -
LeetCode 344. 反转字符串Java
LeetCode 344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]示例 2:输入:["H","a","n","n","a","h"]输出:["h","原创 2021-05-14 22:53:29 · 134 阅读 · 0 评论 -
LeetCode 151. 翻转字符串中的单词Java
LeetCode 151. 翻转字符串中的单词给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例 1:输入:"the sky is blue"输出:"blue is sky the"示例 2:输入:" hello world! "输出:"world! hello"解释:输入字符串可以在前面或者后面包...转载 2021-05-14 22:52:53 · 166 阅读 · 0 评论 -
LeetCode 283. Java判断一个链表是否为回文链表
LeetCode 283. 判断一个链表是否为回文链表请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true//O(n)空间和时间复杂度class Solution { public boolean isPalindrome(ListNode head) { // 使用栈,先让所有元素进栈,然后再出栈与链表的头部元素开始...原创 2021-05-13 20:05:42 · 171 阅读 · 0 评论 -
LeetCode 283. 移动零-Java
LeetCode 283. 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。/*我们创建两个指针i和j,第一次遍历的时候指针j用来记录当前有多少非0元素。即遍历的时候每遇到一个非0元素就将其往数组左边挪,第一次遍历完后,j指针的下标就指向了最后一个非0元素下标。...原创 2021-05-12 20:37:59 · 68 阅读 · 0 评论 -
LeetCode 53 最大子序和Java
LeetCode 53 最大子序和给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。class Solution { public int maxSubArray(int[] nums) { if( nums.length == 0) return ...原创 2021-05-11 22:25:58 · 75 阅读 · 0 评论 -
剑指Offer50 第一个只出现一次的字符
剑指Offer50 第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = "abaccdeff"返回 "b"s = "" 返回 " "class Solution { public char firstUniqChar(String s) { char[] chars = s.toCharArray();//转成字符数组 //创建一个整型数...原创 2021-05-10 21:37:55 · 70 阅读 · 0 评论 -
LeetCode 3 无重复字符的最长子串(Java)
LeetCode 3 无重复字符的最长子串题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为...原创 2021-05-09 15:02:21 · 100 阅读 · 0 评论 -
LeetCode 108 将有序数组转换为二叉搜索树Java
LeetCode 108 将有序数组转换为二叉搜索树题目描述:给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。代码:class Solution { public TreeNode sortedArrayToBST(int[] nums) { return buildTree(nums,0,nums.len...原创 2021-04-28 22:39:04 · 61 阅读 · 0 评论 -
LeetCode 322 零钱兑换(Java)
LeetCode 322 零钱兑换题目描述:给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。示例1:输入:coins = [1, 2, 5], amount = 11输出:3 解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-...原创 2021-04-27 22:33:27 · 232 阅读 · 0 评论 -
LeetCode 215. 数组中的第K个最大元素(Java)
LeetCode 215. 数组中的第K个最大元素题目描述:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4代码:class Solution { //法一可以排序,然后找出第(len-k)的元素 //...原创 2021-04-26 22:54:07 · 119 阅读 · 0 评论 -
LeetCode 560 和为k的子数组(Java)
LeetCode 560 和为k的子数组题目描述:给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数k的范围是[-1e7, 1e7]。代码:class Solution { ...原创 2021-04-26 22:25:43 · 112 阅读 · 0 评论 -
剑指 Offer 39. 数组中出现次数超过一半的数字
剑指 Offer 39. 数组中出现次数超过一半的数字 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2复制代码代码:class Solution { public int majorityElement(int[] nums) { // 法一:也可直接对数组排序,取中间那个元素,即为超过一.原创 2021-04-24 21:31:45 · 66 阅读 · 0 评论 -
剑指Offer 3 找出数组中重复的数字
题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 复制代码代码:class Solution { public int findRepeatNumber(int[] nums) { //利用set集合进行查找重原创 2021-04-24 21:30:59 · 78 阅读 · 0 评论 -
LeetCode 88 合并两个有序数组
LeetCode 88 合并两个有序数组题目描述:给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1 的空间大小等于m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,...原创 2021-04-23 22:32:11 · 59 阅读 · 0 评论 -
LeetCode 59 螺旋矩阵II(Java)
LeetCode 59 螺旋矩阵II题目描述:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]复制代码代码:class Solution { public int[][] generateMatrix(int n) { int[][] matrix = new int[n][n]; int top = 0;原创 2021-04-22 21:16:11 · 72 阅读 · 0 评论 -
LeetCode 54 螺旋矩阵I(Java)
LeetCode 54 螺旋矩阵I题目描述:给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]复制代码代码:class Solution { public List<Integer> spiralOrder(int[][] matrix) { // 定义四个坐标点 in原创 2021-04-22 21:13:45 · 88 阅读 · 0 评论 -
LeetCode125 验证回文串(Java)
LeetCode125 验证回文串题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false复制代码代码: public boolean isPalindrome(String s) { // 使用左右两个标记位原创 2021-04-21 22:56:01 · 118 阅读 · 0 评论 -
LeetCode 50 实现一个pow(x,n) x的n次幂
LeetCode 50 实现一个pow(x,n) x的n次幂题目描述:实现pow(x, n),即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100复制代码代码:class Solution { public double myPow(double x, int n) { // 三个特殊n值的判断 ..原创 2021-04-21 22:55:07 · 110 阅读 · 0 评论 -
LeetCode25 K个一组翻转链表(Java实现)
LeetCode25 K个一组翻转链表(Java实现)题目描述:给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。复制代码代码:class Solution { public ListNode reverseKGroup(ListNode head, int k) { ListNode pre = null; L...原创 2021-04-20 20:59:06 · 93 阅读 · 0 评论 -
LeetCode15 三数之和(Java实现-小白必懂)
LeetCode15 三数之和(Java实现)题目描述:给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]复制代码代码:class Solution { public List<List<Int...原创 2021-04-19 21:43:10 · 107 阅读 · 0 评论