java - 最大连续子数组和
问题描述
所以,我刚刚进行了一次在线编程评估,其中给了我 2 个问题,其中一个是这个连续的子数组和提供了 2 个复杂的编码问题 + 8 个 mcqs,并且将在 1 小时内完成。
在这里,我将讨论上述子数组的最大连续和之一。通常我发现的困难部分是处理负数并且是连续的。我所做的是我首先将 a 应用于Collection.sort(arr)
给定的数组,然后我再次按它们的绝对值对负值进行排序for i.. arr.get(i)! =abs(arr.get(i)) for j.. if arr.get(i)>arr.get(j) then swap so final array is -1, -2, 3,4,5
,例如对于给定的随机数数组,我在每个 i 和所有 j 迭代之后保持一个最大值if max<sum(i.e. sum+arr.get(allj)+arr(particular i) then max=sum
。所以这给了我最大的总和,但是我在 14 个案例中通过了 4 个案例,我认为排序数组的原因并不总是连续的,所以任何建议,以便我如何在其中灌输这种连续的逻辑以使其适用于所有人案例。
解决方案
我认为您将连续子数组问题误认为是子集问题,而是因为您不应该在逻辑中使用排序。您可以参考这里处理负数的问题。https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/
推荐阅读
- excel - 仅隐藏特定工作簿而不影响其他工作簿
- sql - How can I modify this script to get count at every 3 minutes?
- javascript - using Call to inherit objects from a function
- android - Google Plus API is Deprecated. How do i get gender and birth date from requestScopes(Scope(Scopes.PROFILE))
- android - Android 中带有 ImageView 的 RecyclerView
- java - java.lang.Thread - threadStatus 来自哪里?
- laravel - Laravel 完全忽略了我的配置文件
- c++ - 如何在不关闭 C++ 程序的情况下每毫秒生成一个随机数?
- java - 迭代arraylist并通过分组值发送电子邮件
- elasticsearch - Elasticsearch-嵌套条件语句