编写一个函数:
函数解($ A);
给定一个包含 N 个整数的数组 A,返回 A 中未出现的最小正整数(大于 0)。
例如,给定A = [1,3,6,4,1,2],函数应该返回5。
再比如,给定A = [1,2,3],函数应该返回4。
给定A =[1,3],该函数应返回1。
假设:
N是[1…100,000]范围内的整数;数组A的每个元素都是[−1,000,000…1,000,000]范围内的整数。复杂性:
预期最坏情况时间复杂度为O(N);预期最坏情况空间复杂度为O(N),超出输入存储(不包括输入参数所需的存储)。可以修改输入数组的元素。
我的尝试:
function solution($A) {
$b=min($A);
$c=max($A);
for($i=$b; $i<=$c;$i++){
if($b>0){
if($b!=1){
return 1;
}else{
for($x=1;$x<=$c;$x++){
$b=1;
$b=$b+$x;
if(!in_array($b,$A)){
return $b;
}
}
}
}else if($b<0 && $c<0){
return 1;
}else if($b<0 && $c>0){
//was working on this case..
}
//echo $test.'<br>';
}
}
根据结果,此尝试的正确率为40%。
提示没有说数组是有序的,所以不能只是递增。您也不希望重复进行线性搜索,因为数组可能很大。存储在类似散列集的东西中(用于快速查找),并跳过负数:
PHP实现:
<?php
function solution(array $arr) {
$set = [];
foreach ($arr as $value) {
if ($value > 0) {
$set[$value] = $value;
}
}
for ($i = 1; isset($set[$i]); $i++);
return $i;
}
echo solution(array(1, 3, 6, 4, 1, 2));//5
echo solution(array(1, 2, 3));//4
echo solution(array(-1, -2));//1
?>
function solution($A) {
$a = array_flip($A);
for($i=1; isset($a[$i]);$i++);
return $i;
}
解决方案的性能得分为100%!!
不确定你想在代码中做什么,但是从1开始,检查并递增。只要在数组中找不到< code>$i,循环就会停止:
function solution($A) {
for($i=1; in_array($i, $A); $i++);
return $i;
}
我正在尝试以下练习来提高我的在线技能,我遇到了以下问题。 这是一个演示任务。 编写一个函数:class Solution{public int Solutions(int[]A);},给定一个包含N个整数的数组A,返回A中没有出现的最小正整数(大于0)。 举个例子, 给定 A = [1, 3, 6, 4, 1, 2],函数应返回 5。给定 A = [1, 2, 3],函数应返回 4。给定 A =
问题内容: 我们需要在分配中递归地找到一个数组中的第二个最小整数。但是,为了更好地理解该主题,我想先通过本网站进行迭代,然后自己进行递归。 不幸的是,迭代地进行相当混乱。我知道该解决方案很简单,但我无法解决。 到目前为止,以下是我的代码: 这适用于一些数字,但不是全部。数字会变化,因为内部if条件的效率不如外部if条件的效率。 禁止阵列重排。 问题答案: 试试这个。当最小的数字是第一个时,第二个条
把一个int型数组中的数字拼成一个串,这个串代表的数字最小。 #思路说明 对这个问题的理解: 有一个元素是int类型的list; 将上述list中的每个元素的数字分别取出来,然后将这些数字的顺序进行从新排列,并将其中的最小整数输入,就是题目中要求的最小数字。 如果按照上述理解,在解题中,最应当小心的是数字如果很大,比如list中的某个int元素是:2222222222222277777777777
我在这里写了这两个方法来查找最小和最大值。#2是基于这篇文章的这个答案。 如果我运行这样的简单基准测试: } 我通常会得到这样的结果: 我把算法弄错了吗?我本以为至少会有类似的结果。
我试图找到最小的整数中的只是使用两个简单的循环。我最初尝试了一个循环,但是它没有正确更新。我还没有学习,所以这应该在不使用任何代码的情况下完成。 这就是我所拥有的: 我的最小值似乎总是列表中的最后一个值,所以我尝试打印以查看发生了什么,它似乎会更新不同的值,最后更新最后一个值。我不知道为什么会这样。 这是它正在打印的内容,例如:
我正在尝试解决一个leetcode类型问题,这是一个实践问题,它伴随着即将到来的代码测试,我需要为工作做一个,我遇到了麻烦。任何人都可以帮助我了解出了什么问题? 我基本上是在寻找暴力选项,因为我不知道algos/DS。 编写一个函数: 功能溶液(A); 给定一个包含 N 个整数的数组 A,返回 A 中未出现的最小正整数(大于 0)。 例如,给定A = [1,3,6,4,1,2],函数应该返回5。