LEETCODE75,颜色分类
今天用很简单的代码做了一道数组重置题~,题目是颜色分类;给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。
此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。
注意:不能使用代码库中的排序函数来解决这道题。
示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]
解释:就是按题意输出~~~~
题解:这道题就是重置数组的内容,我通过记录每个不同数值的的个数,在将其重新赋值到数组中,得到最终输出数组。
进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。你能想出一个仅使用常数空间的一趟扫描算法吗?
代码如下:12345678910111213141516171819202122232425262728293031323334353637383940package solution;import java.util.*;import java.math.*;class Solution ...
LEETCODE55,跳跃游戏
今天又做了有关数组的leetcode题,有一点点进步~题目是跳跃游戏;给定一个非负整数数组,你最初位于数组的第一个位置。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个位置。
示例1:输入: [2,3,1,1,4]输出: true
解释1:从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。
示例2:输入: [3,2,1,0,4]输出: false
解释2:无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。
题解:该题可以理解为求跳跃的最大值和数组长度n-1的比较,我们依然需要用到指针,i指针初始指向数组位置0,j代表跳跃的最大距离,在遍历数组,若大于n-1,返回true,跳出循环,反之则返回false。
代码如下:12345678910111213141516171819202122232425package solution;import java.util.*;import java.math.*;class solution { public boolean can ...
LEETCODE11-盛最多水的容器
今天把上次理解错题目的题做了一下,感觉自己一点点找回了有关数组的一些函数知识,很棒~~~~题目是盛最多水的容器;给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明:你不能倾斜容器,且 n 的值至少为 2。
图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例:输入: [1,8,6,2,5,4,8,3,7]
输出:49
解释:在该数组中,8和7组成盛水的最大面积,该面积计算方法是7所在的数组位置8,减去8所在的数组位置1,再乘以两个数中较小的那个,也就是(8-1)*7=49。输出49。
题解:读完该题,我的第一想法是先找到最大值,保持不变,在遍历剩下数值求最大面积,后来发现这样行不通,满足所有示例写起来有点麻烦,所以之后采用了双指针,i指针初始指向数组位置0,j指针初始指向数组位置n-1;两个指针对应的数值进 ...
LEETCODE950 递增顺序显示卡牌
今天开始刷leetcode题,摸鱼一小时,做了一道题。题目是递增显示卡牌;输出中的第一张牌被认为处于牌堆顶部,你需要抽走第一张牌显示,若剩下还有牌,则将下一张放到底部,继续抽下一张牌显示,若剩下还有牌,将它放到底部,如此循环,若最后没有牌了,则直接抽走显示它。
示例:输入:[17,13,11,2,3,5,7]
输出:[2,13,3,11,5,17,7]
解释:我们得到的牌组顺序为 [17,13,11,2,3,5,7](这个顺序不重要),然后将其重新排序。
重新排序后,牌组以 [2,13,3,11,5,17,7] 开始,其中 2 位于牌组的顶部。
我们显示 2,然后将 13 移到底部。牌组现在是 [3,11,5,17,7,13]。
我们显示 3,并将 11 移到底部。牌组现在是 [5,17,7,13,11]。
我们显示 5,然后将 17 移到底部。牌组现在是 [7,13,11,17]。
我们显示 7,并将 13 移到底部。牌组现在是 [11,17,13]。
我们显示 11,然后将 17 移到底部。牌组现在是 [13,17]。
我们展示 13,然后将 17 移到底部。牌组现在是 [17]。 ...