LeetCode
Young-_-D
YoungD
展开
-
剑指Offer:构建乘积数组
对于拿到这道题的我,只想到了暴力求解: 当看到大佬们的思路时,我只想说兄弟们咱们题做的还是太少,奋键盘刷题(奋笔图书)吧; 方法一:暴力求解 import java.util.*; public class Solution { public int[] multiply(int[] A) { int[] B = new int[A.length]; Arr...原创 2020-03-20 21:20:15 · 141 阅读 · 0 评论 -
重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 我们来看一下前序遍历,和中序遍历的结果 看到树我们“一般”想想到递归。基本思想就是确定根节点然后再添加左右子树,而左右子树又是一个独立的树,来看代...原创 2020-02-27 10:31:03 · 128 阅读 · 0 评论 -
Java堆排序
直接代码附上,如果需要思路,推荐视频:https://www.bilibili.com/video/av47196993?from=search&seid=11104628614194650826 import java.util.Arrays; public class HeadSort { public static void main(String[] args) { ...原创 2020-02-09 15:14:12 · 129 阅读 · 0 评论 -
LeetCode 189.旋转数组
问题:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数 解法一:也就是我拿到题想到的解法,旋转k次,每次旋转1个元素 public class Soultion{ public void rotate(int[] nums,int k){ int temp,tail; for(int i = 0;i < k;i++){ tail = nums[nums...原创 2020-01-10 23:06:12 · 113 阅读 · 0 评论 -
约瑟夫问题2
问题描述:约瑟夫问题是一个著名的趣题。这里我们稍稍修改一下规则。有n个人站成一列。并从头到尾给他们编号,第一个人编号为1。然后从头开始报数,第一轮依次报1,2,1,2…然后报到2的人出局。接着第二轮再从上一轮最后一个报数的人开始依次报1,2,3,1,2,3…报到2,3的人出局。以此类推直到剩下以后一个人。现在需要求的即是这个人的编号。 给定一个int n,代表游戏的人数。请返回最后一个人的编号 ...原创 2020-01-09 17:35:08 · 268 阅读 · 0 评论 -
LeetCode 6. Z字形变换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。 最重要的是两个转折点,在不断变化行的过程中给以此给每一行添加元素。当在首行时:接下来就是行就应该给未行走,行需要+;当在未行是则相反给首行走,行需要- class Solution { public String convert(String s, int numRows) { if(numRo...原创 2019-12-23 21:07:56 · 120 阅读 · 0 评论 -
LeetCode162.寻找峰值
问题:寻找峰值:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 这个题中重点的一个条件:nums[-1] = nums[n] = -∞;也就是说这个峰值,他可能在数组头或尾...原创 2019-12-13 21:59:57 · 147 阅读 · 0 评论 -
LeetCode167.两数之和 II - 输入有序数组
题目:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 输入: numbers = [2, 7, 11, 15], targe...原创 2019-11-29 23:48:14 · 105 阅读 · 0 评论 -
LeetCode43. 字符串相乘(易懂,原来如此简单)
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 输入: num1 = “123”, num2 = “456” 输出: “56088” 说明: 1.num1 和 num2 的长度小于110。 2.num1 和 num2 只包含数字 0-9。 3.num1 和 num2 均不以零开头,除非是数字 0 本身。 4.不能使...原创 2019-11-26 21:53:15 · 224 阅读 · 0 评论 -
LeetCode137.只出现一次的数字 II(易解,易懂,高效)
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。 eg: 输入: [0,1,0,1,0,1,99] 输出: 99 简单思路(好理解不高效): 对数组进行排序 然后判断连续三个元素相等是否 相对难点:数组循环条件 i < nums.length-2;因为当数组下标为nums.length-2时剩余元素不足3个 class S...原创 2019-11-24 23:19:16 · 195 阅读 · 0 评论 -
LeetCode24. 两两交换链表中的节点(必理解)
题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 eg: 1->2->3->4 ==> 2->1->4->3 思路:【看不懂请见谅,直接看代码】 1.创建一个带头节点的链表,以便于操作ListNode newHead = new ListNode(-1) 2.我们让这个新链表...原创 2019-11-23 21:59:42 · 188 阅读 · 0 评论