
Leetcode
文章平均质量分 57
数据结构与算法练习,Leetcode SQL练习题等等
ZWZhangYu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Leetcode】914. 卡牌分组
文章目录【题目】【题目分析】【代码实践】 【题目】 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌。 组内所有的牌上都写着相同的整数。 仅当你可选的 X >= 2 时返回 true。 示例 1: 输入:[1,2,3,4,4,3,2,1] 输出:true 解释:可行的分组是 [1,1],[2,2],[3,3],[4,4] 示例 2: 输入:[1,1,1,2,2,2,3,3] 输出:false 解释:没有满足要求的分组。 示例 3: 输入:[1] 输出原创 2021-01-17 20:50:14 · 1745 阅读 · 0 评论 -
2. Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do no原创 2020-06-06 21:42:55 · 1743 阅读 · 0 评论 -
链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点 解题思路 本题的思路和之前看矩形那一题有相似之处,就是我们优先考虑边界情况,比如本题,我们需要查找链表中的倒数第K个节点,那么想象此时身处链表最后的位置,我想要知道前面K个位置的结点.就像是跑步一样,我先到达终点.但是要保证我每次都要先到达终点,且我和后面的人速度要一致,所以只有我先走了K步,才能始终保证我到达终点时,对手在倒数第K个位置,也就...原创 2020-02-22 21:13:56 · 1144 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 解题思路 使用额外数组,以空间换时间 创建俩个数组,一个为奇数组一个为偶数组,循环一次原数组,使用位运算判断奇偶性插入奇数组或者偶数组,然后使用Java的本地方法完成数组的复制 public void reOrder...原创 2020-02-21 23:54:59 · 1088 阅读 · 0 评论 -
数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0 解题思路 本题描述的是求数值的次方,该题描述也正是JDK中Math.pow(a,b)方法 这里给出俩个解法: 第一个解法是:使用循环不停的迭代乘积,然后返回累计的结果.注意对于指数为负数的情况考虑 public double Powe...原创 2020-02-21 23:54:03 · 1246 阅读 · 0 评论 -
二进制中1的个数
题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 解题思路 如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。 举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,它后面的两位0变...原创 2020-02-21 23:52:53 · 1215 阅读 · 0 评论 -
矩形覆盖
题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法? 比如n=3时,23的矩形块有3种覆盖方法: 解题思路 2n的大矩形,和n个21的小矩形 有以下几种情形: 1:target <= 0 大矩形为<= 20,直接return 1; 2:target = 1,只有一种摆放方法,return1; 3:targ...原创 2020-02-20 23:07:23 · 1128 阅读 · 0 评论 -
变态跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 解题思路 1:首先把这一题和前一题跳台阶放在一起看,跳台阶是只可以条1次和2次,那么f(n)=f(n-1)+f(n-2) 2:上述形成的图形是一颗二叉树,那么对于本题而言,每次可以跳1…n次,即是对于上一题的扩展,它所形成的图形就是一颗树,如果是N,那么就是N-1叉的树 3:根...原创 2020-02-20 21:23:26 · 1116 阅读 · 0 评论 -
跳台阶
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果) 解题思路 跳台阶问题,我们可以从后往前看,如果共有N阶台阶,那么最后一次只能在N-1和N-2的位置,直到1和2时结束,该题的类似于斐波那契数列 | 1, (n=1) f(n) = | 2, (n=2) | f(n-1)+f(n-2) ,(n>2,n为整数) ...原创 2020-02-20 21:22:42 · 1113 阅读 · 0 评论 -
斐波那契数列
题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0). n<=39 解题思路 这个数列从第3项开始,每一项都等于前两项之和 1、1、2、3、5、8、13、21、34 斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 注意这里从第0项开始,要考虑到n=o的情况,还有...原创 2020-02-20 21:21:46 · 1144 阅读 · 0 评论 -
旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1. NOTE:给出的所有元素都大于0,若数组大小为0,请返回0 解题思路 输入参数为递增数组的若干元素旋转后数组,虽然经过旋转,但是这个数组也是相对性一个递增有序的数组,关键在...原创 2020-02-20 21:20:42 · 1054 阅读 · 0 评论 -
用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 解题思路 栈:先入后出 队列:先入先出 此时我们有俩个栈,其中一个栈负责数据的插入,但此时肯定是无法保证队列特性,因此需要借助另一个栈,需要将栈1的数据放入栈2中,然后再弹出栈2栈顶数据就满足先入先出特性了. 1:在入栈时,直接插入 stack1 2:当弹出时,当 stack2 不为空,弹出 stack...原创 2020-02-20 21:19:44 · 1149 阅读 · 0 评论 -
重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回 解题思路 递归构建二叉树 .1. 分析 根据中序遍历和前序遍历可以确定二叉树,具体过程为: 根据前序序列第一个结点确定根结点 根据根结点在中序序列中的位置...原创 2020-02-20 21:19:07 · 2134 阅读 · 0 评论 -
从尾到头打印链表
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解题思路 这里使用俩种方式,第一种方式递归,即到达空节点null时为终止条件返回执行前面的方法,添加数据;第二种方式栈,由于栈具有后入先出的特性,所以可以对链表进行遍历依次入栈然后在依次出栈,时间复杂度O(n) //链表结构 class ListNode { int val; ListNode next = ...原创 2020-02-20 21:18:13 · 1268 阅读 · 0 评论 -
替换空格
题目描述【字符串】 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy 代码描述 注意字符类型和字符串的类型的比较,equals()和== public class Solution { public String replaceSpace(StringBuffer str) { ...原创 2020-02-20 21:16:56 · 1066 阅读 · 0 评论 -
二维数组的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解: 由于每一行是有序递增的数组, 利用循环遍历和二分查找, 通过遍历每一行得到答案, 时间复杂度是nlogn 还有一种方法: 思路:矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此...原创 2018-08-03 09:03:00 · 1112 阅读 · 0 评论