- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在想办法解决这个问题
Sum n largest integers in an array of integers where every integer is between 0 and 9
int SumNLargest(int* anData, int size, int n)
编程挑战提示,除了对数组拷贝进行排序并返回最后 9 个元素的总和之外的解决方案。所以我尝试在下面编写线性解决方案
#include <iostream>
int SumNLargest(int* anData, int size, int n)
{
// Sum n largest integers in an array of integers where every integer is between 0 and 9
int cntArr [] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
for (int i = 0; i < size; ++i) ++cntArr[anData[i]];
int sum = 0;
for (int i = size - 1; i >= 0; --i)
{
sum += (n - cntArr[i]) >= 0 ? cntArr[i] * i : n * i;
--n;
if (n <= 0) break;
}
return sum;
}
int main()
{
int myArray [] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 11, 12, 15};
std::cout << SumNLargest(myArray, sizeof(myArray)/sizeof(int), 2);
return 0;
}
但是我得到了错误
Disallowed system call: SYS_socketcall
参见:http://codepad.org/UILgXDzQ
我的逻辑有问题吗?如果有,在哪里?另外,有没有我应该做的更优雅的线性解决方案?
(最后,我意识到我的解决方案假设 n >= size >= 1
,但我认为典型的编程面试允许我做出这样的假设,这样我就不必浪费时间为意外输入编写一堆错误处理)
最佳答案
您的代码调用了未定义的行为
for (int i = 0; i < size; ++i)
++cntArr[anData[i]];
当你访问第十一个元素时(i = 10
)因为cntArr
只有10个元素。
诸如 AddressSanitizer 之类的内存检查器会立即向您指出这一点。
您并没有真正调用系统调用来创建新套接字,但由于未定义的行为,任何事情都可能发生。
关于c++ - "Disallowed system call: SYS_socketcall"当我尝试解决 "sum the largest n integers in the array"编程挑战时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799574/
假设我有一个看起来像这样的数据框 A 0 17 1 21 2 18 3 11 4 4 5 27 6 21 7 11 8 7 9 4 10 7
当一周的“最大的一天”不存在时如何获取数据? 例如,如果我的数据库中不存在特定一周的星期五(假设星期六和星期日不在我的数据库中),我仍然希望能够获取星期四的数据。如果星期五和星期四都不存在,我想获取星
#include int main (void) { int phy,geo,i,highest,largest; int arr[2]={phy,geo}; printf(
这个问题是在一次采访中被问到的,我仍在寻找最佳解决方案。 给你一个有 N 个单元格的迷宫。每个单元格可以有多个入口点,但导出点不能超过一个(即入口/导出点是单向门,如阀门)。 单元格以从 0 开始的整
给定一个大的稀疏矩阵(比如 10k+ x 1M+),我需要找到一个子集,它不一定是连续的,由构成密集矩阵(所有非零元素)的行和列组成。我希望这个子矩阵在某些纵横比约束下尽可能大(不是最大和,而是最
题目地址:https://leetcode-cn.com/problems/check-if-a-number-is-majority-element-in-a-sorted-array/ 题目描述
题目地址:https://leetcode-cn.com/problems/count-largest-group/ 题目描述 Given an integer n. Each number fr
题目地址:https://leetcode.com/problems/largest-sum-of-averages/description/ 题目描述: Wepartition a row of
题目地址:https://leetcode.com/problems/largest-triangle-area/description/ 题目描述 Youhave a list of point
我使用 fastgreedy.community 生成一个社区对象,其中包含 15 个社区。但是我怎样才能在这 15 个社区中提取最大的社区呢? Community sizes 1 2 3
问。给定两个长度相等的数组 A 和 B,找到索引 [i,j] 的最大可能连续子数组,使得 max(A[i: j]) B[j]: Bq.pop() Bq.app
问。给定两个长度相等的数组 A 和 B,找到索引 [i,j] 的最大可能连续子数组,使得 max(A[i: j]) B[j]: Bq.pop() Bq.app
我想使用以下规则从文件夹中检索文件: 获取最大的文件 如果文件大小相同,则采用最新的文件。 到目前为止我已经尝试过以下方法: List folderFilePaths = new ArrayList(
我想知道我的思路是否正确。 我正在准备面试(作为一名大学生),我遇到的其中一个问题是找到数组中 K 个最大的数字。 我的第一个想法是只使用部分选择排序(例如,从第一个元素开始扫描数组,并为看到的最低元
我需要使用动态规划在零和一的矩阵中找到最大的三角形。所以如果这是我的矩阵: 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 0 1 然后有两个最大
给定一个元素数组,找到最大可能的数字通过使用数组的元素形成。 例如:10 9 答:910 2 3 5 78 答:78532 100 9 答:9100 我知道这个问题有一个使用自定义字符串比较器的解决方
我正在调试内存不足的异常。当我得到异常时,“虚拟字节”性能计数器指示有足够的可寻址空间。然而,问题在于可寻址空间碎片化严重,并且“最大空闲区域”(从 WinDbg 中的 !address 返回)太
题目地址:https://leetcode.com/problems/kth-largest-element-in-an-array/description/ 题目描述 Find the kth
题目地址:https://leetcode.com/problems/largest-time-for-given-digits/description/ 题目描述 Given an array
如何从java中的链表中删除最大元素?我知道我可以使用 get() 或 remove() 函数来检索/删除元素。但我想让它变得高效。我想使用迭代器。你知道我该怎么做吗?请注意,我不想创建自己的链表。我
我是一名优秀的程序员,十分优秀!