C# 巧用二分查找法:判断集合 b 是否为集合 a 的子集
在C#中,可以使用二分查找法来判断一个集合b是否是另一个集合a的子集。以下是使用二分查找法实现的示例代码: ```csharp using System; using System.Collections.Generic; class Program { static bool IsSubset(List<int> a, List<int> b) { a.Sort(); b.Sort(); foreach (int num in b) { if (BinarySearch(a, num) == -1) { return false; } } return true; } static int BinarySearch(List<int> list, int target) { int left = ; int right = list.Count - 1; while (left <= right) { int mid = left + (right - left) / 2; if (list[mid] == target) return mid; else if (list[mid] < target) left = mid + 1; else right = mid - 1; } return -1; } static void Main(string[] args) { List<int> a = new List<int>() { 6, 20, 84, 45, 12, 67, 9, 3 }; List<int> b = new List<int>() { 12, 694 }; bool isSubset = IsSubset(a, b); Console.WriteLine(isSubset); } } ``` 在这段代码中,我们首先对集合a和b进行排序,然后使用二分查找算法判断b中的每个元素是否在a中存在。如果b中有任何一个元素在a中不存在,就返回false;如果b中的所有元素都在a中存在,那么b就是a的子集,返回true。运行以上代码,输出结果为true。 ######[AI写代码神器 | 1174点数解答 | 2024-04-19 11:55:50]
- 巧用 JS 脚本找出集合 [1,2,2,3,3,5] 中的重复元素( | 502点数解答 | 2024-04-01 18:01:38)244
- JS 巧用 Set 数据结构找出集合 [1,2,2,3,3,5] 中的重复元素( | 220点数解答 | 2024-04-01 18:02:44)248
- JSP 实战:用 List 存 Map 集合,循环十次添加姓名和年龄! (GPT | 753点数解答 | 2024-11-25 09:16:28)236
- Java JSP 代码:用 List 存储 Map 集合并循环添加姓名和年龄(GPT | 240点数解答 | 2024-11-25 09:17:43)258
- C++实现:计算n个元素集合的不同非空子集划分数量(GPT | 266点数解答 | 2024-12-12 21:50:22)170
- C++ 实现:计算 n 个元素集合的非空子集划分数量(贝尔数问题)(百度文心 | 670点数解答 | 2024-12-12 21:50:56)482
- C语言实现:计算n个元素集合的非空子集划分数量(字节豆包 | 223点数解答 | 2025-04-02 08:32:25)239
- Linux开发:用find命令查找/usr目录下超1MB的文件(百度文心 | 153点数解答 | 2023-11-09 18:45:10)217
- 8 个实用命令,助 Linux 开发者轻松查找服务器平均负载!(百度文心 | 311点数解答 | 2023-11-09 18:47:10)237
- C++实现顺序存储结构基本操作:初始化、插入、删除等全解析(GPT | 1743点数解答 | 2024-09-26 00:20:17)295
- C 语言实现:精准查找比特流中的同步码(字节豆包 | 336点数解答 | 2024-11-14 22:45:41)156
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)371