首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何找到数组值等于数字fsharp的所有索引?

要找到数组值等于数字fsharp的所有索引,可以使用以下方法:

  1. 遍历数组:使用循环或迭代器遍历数组中的每个元素。
  2. 检查数值:对于每个元素,检查其是否等于数字fsharp。
  3. 记录索引:如果元素等于数字fsharp,将该元素的索引记录下来。
  4. 返回结果:返回所有等于数字fsharp的元素的索引。

以下是一个示例代码,使用F#语言实现上述步骤:

代码语言:txt
复制
let findIndexes (arr: int array) (value: int) =
    let mutable indexes = []
    for i = 0 to arr.Length - 1 do
        if arr.[i] = value then
            indexes <- i :: indexes
    indexes |> List.rev

let arr = [| 1; 2; 3; 4; 3; 2; 1 |]
let value = 3
let result = findIndexes arr value
printfn "Indexes of %d in the array: %A" value result

这段代码定义了一个名为findIndexes的函数,它接受一个整数数组arr和一个整数value作为参数。函数遍历数组中的每个元素,如果元素等于value,则将其索引添加到indexes列表中。最后,通过List.rev将列表反转,以保持索引的顺序与数组中的出现顺序一致。最后,打印出等于value的元素的索引。

请注意,这只是一个示例代码,你可以根据实际需求进行修改和优化。此外,腾讯云提供了多种云计算相关产品,例如云服务器、云数据库、云存储等,你可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

找到所有数组中消失数字

题目描述 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。...找到所有在 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度为O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...示例 1: 输入: [4,3,2,7,8,2,3,1] 输出: [5,6] 解法 若按序不重复存放,则 n 个元素刚好存放于大小为 n 数组中,即每个下标 i 处存放元素为 i+1。...根据题目中描述,数组中可能存在重复元素,且并未按序存放。所以不妨遍历数组,将每个元素调整到对应下标的位置,即将元素 k 存储于下标为 k-1 处。然后遍历数组,元素与下标不匹配即为消失元素数字

64310

LeetCode-448-找到所有数组中消失数字

# LeetCode-448-找到所有数组中消失数字 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。...找到所有在 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度为O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...利用一个O(n)空间哈希表进行数据存储,之后进行数组遍历,判断是否有i这个在哈希表内,如果不在则就是消失数字。...* * 解题思路:使用数组下标来标记数字出现于否,通过一遍遍历即可标记出全部已经出现数组 * * [4,3,2,7,8,2,3,1] 初始数据 *...-7 计算时,通过绝对处理一下即可不影响数据计算 * [4,3,-2,-7,8,2,3,1] * [4,-3,-2,-7,8,2,3,1] * [4,-3,-2,-7,8,2

46820

LeetCode-448-找到所有数组中消失数字

# LeetCode-448-找到所有数组中消失数字 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。...找到所有在 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度为O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...利用一个O(n)空间哈希表进行数据存储,之后进行数组遍历,判断是否有i这个在哈希表内,如果不在则就是消失数字。...* * 解题思路:使用数组下标来标记数字出现于否,通过一遍遍历即可标记出全部已经出现数组 * * [4,3,2,7,8,2,3,1] 初始数据 *...-7 计算时,通过绝对处理一下即可不影响数据计算 * [4,3,-2,-7,8,2,3,1] * [4,-3,-2,-7,8,2,3,1] * [4,-3,-2,-7,8,2

51330

找到所有数组中消失数字

题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。 找到所有在 [1, n] 范围之间没有出现在数组数字。...您能在不使用额外空间且时间复杂度为O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array 著作权归领扣网络所有...解题 题目要求不适用额外空间,不能使用map或者set了 不断交换当前数到他排序该在位置,或者他对应位置也是当前位置数值时,移动指针 最后遍历数组,不在位置上数即是答案 ?

76030

【每日leetcode】12.找到所有数组中消失数字

所有正数作为数组下标,置对应数组为负值。那么,仍为正数位置即为(未出现过)消失数字。 ——leetcode此题热评 前言 哈喽,大家好,我是一条。 糊涂算法,难得糊涂 今天你糊涂了吗?...找到所有数组中消失数字 难度:简单 给你一个含 n 个整数数组 nums ,其中 nums[i] 在区间 [1, n] 内。...请你找出所有在 [1, n] 范围内但没有出现在 nums 中数字,并以数组形式返回结果。...你可以假定返回数组不算在额外空间内。 Solution 「鸽笼原理」 由题意可得,1~n位置表示1~n个笼子,如果出现过,相应“鸽笼”就会被占掉,我们将数字置为负数表示被占掉了。...最后再遍历一遍,如果“鸽笼”为正数就是没出现数字

92420

LeetCode 448.找到所有数组中消失数字 - JavaScript

题目描述:给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 整型数组数组元素一些出现了两次,另一些只出现一次。...找到所有在 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度为 O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...题目分析 这一题和Leetcode 442.数组中重复数据解决思路很相似。但没有完全明确限制空间使用。...解法 1:哈希表 算法流程如下: 准备一个哈希表 map,结构是number-boolean 遍历原数组,将每个元素在 map 中设为 true 从 1 到 n,检查map[i]是否为 true。...下标为 i 元素符号,代表着为 i + 1 元素是否出现过,负号是出现过,正号是没出现过。 不需要开辟空间给哈希表,时间复杂度是 O(N)。

94920

python面试题-找到两个数组元素和小于等于目标值target最大所有组合

题目: 给定2个数组(不是有序),再给定一个目标值target,找到两个数组元素和小于等于目标值target最大所有组合 示例一: 数组a 为[3, 8,5] 数组b 为[2, 1,4] 目标值...10 输出:(8,2)  因为 8+2<=10 示例二 数组a为 [5, 7, 2] 数组b为[4, 2, 1] 目标值10 输出为(5, 4), (7,2)因为5+4=7+2<=10 代码参考 """...else: if i+j == sum(target_map[-1]): # 如果新元素相加跟收集结果里面值相等...target_map.append((i, j)) if i + j > sum(target_map[-1]): # 如果新元素相加大于收集结果里面值相等...target_map.append((i, j)) if i + j < sum(target_map[-1]): # 如果新元素相加小于收集结果里面值相等

1.3K10

​LeetCode刷题实战448:找到所有数组中消失数字

算法重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !...今天和大家聊问题叫做 找到所有数组中消失数字,我们先来看题面: https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array...给你一个含 n 个整数数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中数字,并以数组形式返回结果。...i] <= n) { ret.add(i + 1); } } return ret; } } 好了,今天文章就到这里...,如果觉得有所收获,请顺手点个在看或者转发吧,你们支持是我最大动力 。

37030

【Leetcode -441.排列硬币 -448.找到所有数组中消失数字

对于一个由 k 行组成阶梯,其第 i 行必须正好有 i 枚硬币。 阶梯最后一行 可能 是不完整。 给你一个数字 n ,计算并返回可形成 完整阶梯行 总行数。...return i - 1; //每循环一次就进入下一层 i++; } return 0; } Leetcode - 448.找到所有数组中消失数字...请你找出所有在[1, n] 范围内但没有出现在 nums 中数字,并以数组形式返回结果。...,以数组元素作为hash数组下标,并赋予1,表明这个数已经出现过 for (int i = 0; i < numsSize; i++) { hash[nums...[i]] = 1; } //遍历hash数组下标,从1到数组长度,如果有等于0,说明在数组中没出现过,返回这个下标 for (int i = 1; i <

9610

Find All Numbers Disappeared in an Array(找到所有数组中消失数字)

找到所有在 [1, n] 范围之间没有出现在数组数字。 您能在不使用额外空间且时间复杂度为O(n)情况下完成这个任务吗? 你可以假定返回数组不算在额外空间内。...示例: 输入: [4,3,2,7,8,2,3,1] 输出: [5,6] 思路: 假设原数组是nums[0]=0,nums[1]=1...有序数组,现在题目可以想象成,把其中一些桶里面的数字改掉...,nums[5]不等于5,改为2,nums[6]不等于6,改为3,接着将这个数组元素打乱顺序,然后问,有哪些数字被修改了没出现过。...遍历数组元素,将每个桶里元素还原,比如找到0,就标记0号桶,说明0元素出现过,货真价实没被篡改,出现1就标记1号桶,这个元素出现了没被篡改。...可以通过标记对应下标的桶为负,说明这个桶里数字出现了,没被篡改。将所有数组遍历之后,没被标记桶对应数字被篡改了,也就是没出现

11710

【算法千题案例】⚡️每日LeetCode打卡⚡️——55.找到所有数组中消失数字

原题样例:找到所有数组中消失数字 ????C#方法:排序 ????Java 方法:哈希 ????总结 ---- ????前言 ???? 算法题 ???? ????...原题样例:找到所有数组中消失数字 给你一个含 n 个整数数组 nums ,其中 nums[i] 在区间 [1, n] 内。...请你找出所有在 [1, n] 范围内但没有出现在 nums 中数字,并以数组形式返回结果。...C# 提交中击败了58.36%用户 内存消耗:37.4 MB,在所有 C# 提交中击败了8.56%用户 ---- ????...Java 提交中击败了100.00%用户 内存消耗:47.3 MB,在所有 Java 提交中击败了55.49%用户 复杂度分析 时间复杂度:O( n ) 空间复杂度:O( 1) ---- ??

22520

漫画:如何数组找到和为 “特定两个数?

我们来举个例子,给定下面这样一个整型数组(题目假定数组不存在重复元素): 我们随意选择一个特定,比如13,要求找出两数之和等于13全部组合。...由于12+1 = 13,6+7 = 13,所以最终输出结果(输出是下标)如下: 【1, 6】 【2, 7】 小灰想表达思路,是直接遍历整个数组,每遍历到一个元素,就和其他元素相加,看看和是不是等于那个特定...第1轮,用元素5和其他元素相加: 没有找到符合要求两个元素。 第2轮,用元素12和其他元素相加: 发现12和1相加结果是13,符合要求。 按照这个思路,一直遍历完整个数组。...在哈希表中查找7,查到了元素7下标是7,所以元素6(下标是2)和元素7(下标是7)是一对结果: 按照这个思路,一直遍历完整个数组即可。...= i) { resultList.add(Arrays.asList(i,map.get(other))); //为防止找到重复元素对

3K64

漫画:如何数组找到和为 “特定三个数?

这一次,我们把问题做一下扩展,尝试在数组找到和为“特定三个数。 题目的具体要求是什么呢?给定下面这样一个整型数组: ? 我们随意选择一个特定,比如13,要求找出三数之和等于13全部组合。...我们以上面这个数组为例,选择特定13,演示一下小灰具体思路: 第1轮,访问数组第1个元素5,把问题转化成从后面元素中找出和为8(13-5)两个数: ? 如何找出和为8两个数呢?...这样说起来有些抽象,我们来具体演示一下: 第1轮,访问数组第1个元素1,把问题转化成从后面元素中找出和为12(13-1)两个数。 如何找出和为12两个数呢?...此时双指针重合在了一起,如果再继续移动,就有可能和之前找到组合重复,因此我们直接结束本轮循环。 第2轮,访问数组第2个元素2,把问题转化成从后面元素中找出和为11(13-2)两个数。...计算两指针对应元素之和,5+6 = 11,于是我们又找到符合要求一组: 2,5,6 我们继续寻找,让指针k左移: ? 此时双指针又一次重合在一起,我们结束本轮循环。

2.3K10

如何从有序数组找到和为指定两个元素下标

如何从有序数组找到和为指定两个元素下标?...例如:{2, 7, 17, 26, 27, 31, 41, 42, 55, 80} target=72.求得为17和55,对应下标为:2,8 思考下,只要将元素自己与后面的所有元素相加计算一下,就能找到对应两个...换个思路,在这个有序数组中,可以使用2个指针分别代表数组两侧两个目标元素.从目标数组两侧,向中间移动;当两个指针指向元素计算,比预定target小了,那左侧指针右移下,重新计算;当计算大于target...时,右侧指针左移下,直到两个元素和与target相等.这种方法叫做搜索空间缩减,这也是这道题关注点.这种方法时间复杂度只有O(2*n)(非严谨说法),是非常高效一种方法了....一起看下指针如何移动, 1. 2+80>72,j左移; 2. 2+55<72,i右移 3. 7+55<72,i右移 4. 17+55=72,计算结束 可见,两个指针只移动了3次,就计算出结果

2.3K20
领券