数组
sunny_daily
java、数据结构、leetcode、企业数字化转型!在线免费接需求!!!
展开
-
34-在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。要求时间复杂度为O(log n) 。输入:nums = [5,7,7,8,8,10], target = 8,输出:[3,4] 时间复杂度为O(log n),则需要使用二分查找算法,这里其实是二分查找算法的一个变种。二分查找不复杂,复杂的就是细节,什么时候该写小于号、什么时候该写等于号......。...原创 2021-09-30 15:08:16 · 93 阅读 · 0 评论 -
33-搜索旋转排序数组
整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标从0开始计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为[4,5,6,7,0,1,2] 。给你旋转后的数组 nums 和一个整...原创 2021-09-29 19:03:39 · 136 阅读 · 0 评论 -
31-下一个排列
实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。输入:nums = [1,2,3],输出:[1,3,2] 输入[1,2,3],则1,2,3三个元素构成的数组为[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1],则下一个元素为[1,3,2]。具体解析过程看代码注释...原创 2021-09-29 18:06:06 · 80 阅读 · 0 评论 -
61-扑克牌中的顺子
从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。如输入: [1,2,3,4,5] 输出: True;输入: [0,0,1,2,5] 输出: True。 根据题意其实就是给一个含有五个元素的数组,数组的元素是从0到13之间。判断数据元素是不是连续即可,但这里有一个特征...原创 2021-09-17 22:22:09 · 53 阅读 · 0 评论 -
49-数组中出现次数超过一半的数字
剑指offer的第49道题。数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。如输入: [1, 2, 3, 2, 2, 2, 5, 4, 2],输出: 2。 这道题应该很简单,直接拉一个map哈希对象即可,个人认为这种写法应该是不错的,但提交到力扣之后,感觉效率有点低,希望后续有更好的实现方式。package learnproject.offer;import java.util.HashMap;...原创 2021-09-16 23:19:46 · 52 阅读 · 0 评论