题目:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。 思路:第一个思路是创建一个锚点,这个锚点表示第一个正整数的出现的位置,然后再分情况来判断,结果程序无法通过所有的测试用例,第一个思路方法以后再实现 ...
现在可以开始写算法了。 检查 是否存在于数组中。如果没有,则已经完成, 即为答案。 如果 nums ,答案即为 。将负数,零,和大于 n 的数替换为 。遍历数组。当读到数字 a 时,替换第 a 个元素的符号。注意重复元素:只能改变一次符号。由于没有下标 n ,使用下标 的元素保存是否存在数字 n。再次遍历数组。返回第一个正数元素的下标。如果 nums gt ,则返回 n 。如果之前的步骤中没有发 ...
2020-04-29 23:00 0 1405 推荐指数:
题目:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。 思路:第一个思路是创建一个锚点,这个锚点表示第一个正整数的出现的位置,然后再分情况来判断,结果程序无法通过所有的测试用例,第一个思路方法以后再实现 ...
今天进行一个解题 才发现编程的快乐。 题目例子: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现 ...
题目: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。 思路: 考虑数组中为负数的情况。 程序: class Solution: def ...
题目: 给定一个无序整型数组arr,找到数组中未出现的最小正整数。要求时间复杂度为O(N)空间复杂度为O(1)。 例如: arr=[-1,2,3,4]。返回1。 arr=[1,2,3,4]。返回5。 分析: 这道题要理解最小正整数的意思,最小的正整数就是1,所以考察的方法就是在数组中找 ...
class Solution { public int[] twoSum(int[] nums, int target) { ...
刷题系列一: 注:题型出自leet-code https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案 ...