![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数组
橙子慢慢学
这个作者很懒,什么都没留下…
展开
-
贪心算法:leetcode455. 分发饼干
题目描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。解题思路:这里我用贪心算法:先将g和s从小到大排序,然后把最小的饼干尺寸给胃口最小(不过胃口一定要小于等于当前这个最小饼干原创 2021-05-19 22:11:08 · 149 阅读 · 0 评论 -
算法:两数之和(暴破)
题目描述:给出一个整数数组,请在数组中找出两个加起来等于目标值的数,你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的假设给出的数组中只存在唯一解例如:给出的数组为 {20, 70, 110, 150},目标值为90输出 index1=1, index2=2输入:[3,2,4],6输出:[2,3]思路:暴破:就直接判断数组中有没有元素等于target - numb原创 2021-05-19 15:41:11 · 57 阅读 · 0 评论 -
算法:最小的k个数(冒泡排序)
题目描述给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组输入:[4,5,1,6,2,7,3,8],4输出:[1,2,3,4]解题思路:本来是想用堆排序的,但算了下堆排序复杂度O(nlogn),我用冒泡部分排序复杂度O(4n)(不知道我又没有算错[鬼鬼祟祟]),所以用了冒泡排序代码:class Solution {public: v原创 2021-05-18 21:44:31 · 327 阅读 · 0 评论 -
算法:寻找数组中心下标
题目描述:给定一个整数数组nums,请编写一个能够返回数组“中心下标”的方法。中心下标:左侧所有元素相加的和等于右侧所有元素相加的和如果数组不存在中心下标,则返回-1;如果数组有多个(两个)中心下标,则返回最靠近左边的中心下标...原创 2021-05-17 10:09:57 · 370 阅读 · 0 评论 -
算法:(双指针)最长无重复子数组
题目描述:给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,2,3,4,5]的子数组有[1,2],[2,3,4]等等,但是[1,3,4]不是子数组思路:因为刚学了双指针,所以想用双指针做,后面以为也许可以用单指针,因为删除和子数组长度都可以用集合set.erase()和set.size()获得,可是用单指针做时,试着用set.erase(st.begin(),st.end());和set.clear();清空前一子数组时,运行都原创 2021-05-16 21:35:25 · 223 阅读 · 0 评论 -
算法:(双指针算法)删除排序数组中的重复项
题目:一个有序数组nums,原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度也就是不能使用额外的数组空间输入:[0,1,2,2,3,3,4]输出: 5算法思想:使用两个指针: i = 0; j = 1;当nums[i] == nums[j] 时,i不动,j++当 nums[i] != nums[j] 时,把nums[j] 的值赋值给 nums[i + 1] ,并且i和j都向前移动删除后数组的新长度为 (i +1)代码如下: public static int原创 2021-05-16 17:02:50 · 104 阅读 · 0 评论