【LeetCode 378. 有序矩阵中第K小的元素 Java】教程文章相关的互联网学习教程文章

Leetcode(4) - 寻找两个有序数组的中位数 - java版【代码】【图】

Leetcode(4) - 寻找两个有序数组的中位数 - java版 题目 困难 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。示例1: nums1 = [1, 3] nums2 = [2] 则中位数是 2.0示例2: nums1 = [1, 2] nums2 = [3, 4] 则中位数是 (2 + 3)/2 = 2.5解题分析 先从题干进行分析 , 本题若没有时间复杂度要求,将是一道极简单...

LeetCode 22 (Java解法)

使用了递归回溯: public static List<String> generateParenthesis(int n) { List<String> res = new ArrayList<>(); helper(res,"",0,0,n); return res; } public static void helper(List<String> res,String out,int open,int close,int n) { if(out.length() == 2*n) { res.add(out); return; } if(open < n) { helper(res,out...

删除链表的倒数第N个节点(Remove Nth Node From End of List)java_leetcode19【代码】【图】

删除链表的倒数第N个节点(Remove Nth Node From End of List)java_leetcode19版权©: https://blog.csdn.net/zhangjingao/article/details/96988414题干 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明:给定的 n 保证是有效的。来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/remove-nth...

LeetCode51(N皇后)-Java解法【代码】

先说明下皇后棋子的效果,所在行、列、主对角线、次对角线都不可以放置。 首先想出递归函数:下面是伪代码 backtrack(int row=0): for(int col = 0;col < n;col ++){ 判断是否可以放置:如果可以 placeQueen(row,col); 如果此时:row + 1 == N 发现一种解法,记录到res中 没有:进行回溯backtrack(row + 1) remove(row+col) 将之前的标记取消 } 下面介绍下如何记录主对角线和...

leetcode刷题记录-1002查找常用字符[java,数组]*【代码】

题目 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。 你可以按任意顺序返回答案。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-common-characters 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 我的代码 很惭愧,这...

leetcode刷题121 买卖股票的最佳时机 Best Time to Buy and Sell Stock(简单) Python Java

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1:输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例 2:输入: ...

leetcode java 66. 加一【代码】

leetcode java 66. 加一 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2: 输入: [4,3,2,1] 输出: [4,3,2,2] 解释: 输入数组表示数字 4321。 解题思路: 加一有两种情况,第一种就是没有进位的加一,第二种就是有...

leetcode 43. 字符串相乘(Java版)【代码】【图】

题目描述(题目难度,中等) 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = “2”, num2 = “3” 输出: “6” 示例 2: 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明:num1 和 num2 的长度小于110。 num1 和 num2 只包含数字 0-9。 num1 和 num2 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大数类型(比如 BigInt...

面试题:LeetCode 239. 滑动窗口最大值 java【代码】

这是一道本人面试时遇到的算法题,在LeetCode中的原题,虽然被列为困难,其实并不难。 题目: 给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口 k 内的数字。滑动窗口每次只向右移动一位。 返回滑动窗口最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 --------------- ----- ...

LeetCode - 两数之和【Java | LeetCode初级】【代码】

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]我的解法:暴力双重for循环,有机会再写一遍这个题吧,现在就先这样了class Solution {public int[] twoSum(int[] nums, int t...

【LeetCode-java实现】56. Merge Intervals合并区间【代码】

56. Merge Intervals合并区间题目描述思路实现 题目描述 Given a collection of intervals, merge all overlapping intervals. Example 1: Input: [[1,3],[2,6],[8,10],[15,18]] Output: [[1,6],[8,10],[15,18]] Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6]. Example 2: Input: [[1,4],[4,5]] Output: [[1,5]] Explanation: Intervals [1,4] and [4,5] are considered overlapping. 思路先按每...

【Java】【LeetCode】53. Maximum Subarray【代码】

题目: Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum. Example:Input: [-2,1,-3,4,-1,2,1,-5,4], Output: 6 Explanation: [4,-1,2,1] has the largest sum = 6.Follow up: If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle. 题解: 这道题要...

leetcode java 917. 仅仅反转字母【代码】

leetcode java 917. 仅仅反转字母 给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 示例 1: 输入:“ab-cd” 输出:“dc-ba” 示例 2: 输入:“a-bC-dEf-ghIj” 输出:“j-Ih-gfE-dCba” 示例 3: 输入:“Test1ng-Leet=code-Q!” 输出:“Qedo1ct-eeLg=ntse-T!” 提示: S.length <= 100 33 <= S[i].ASCIIcode <= 122 S 中不包含 \ or "解题思路: 双指针法 class S...

LeetCode:26 从排序数组中删除重复项(Java)

题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1:给定数组 nums = [1,1,2],?函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。?你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5, 并...

【Java】LeetCode初级——旋转数组【代码】

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2 输出: [3,99,-1,-100] 解释: 向右旋转 1 步: [99,-1,-100,3] 向右旋转 2 步: [3,99,-1,-100] 说明: 尽可能想出更多的解决方案,至少有三种不同的方法...

元素 - 相关标签