java - 下面这段代码的时间复杂度是多少
问题描述
int FindSum(int[] A, int[] B){
int[] temp = A;
A = B;
B = temp;
}
在这个 java 代码中,我们交换了两个数组,在这种情况下,只有数组的内存引用正在改变,或者 A 和 B 之间的元素交换?时间复杂度为 O(1) 或 O(m+n),其中 m 和 n 分别是数组 A 和 B 的大小。这段代码是在 leetcode https://leetcode.com/articles/median-of-two-sorted-arrays/上找到的
解决方案
此代码为 O(1)。作为旁注,它什么都不做。
它们不是原始的,所以它们只是交易参考。此外,局部变量 A 和 B 在更改时不会反映调用它们的任何方法的更改。在 main 中交换 A 和/或 B 的实际值的唯一方法是在传递的数组中通过引用来更改它们,但是交换引用的位置没有任何作用。
推荐阅读
- arrays - Using the each operator with the without function in APL
- react-native - TextInput placeholder style not work properly
- css - Adjust letter spacing to size of container
- ssh - Ubunthu Ansible Control socket "/root/.ansible/cp/ansible-ssh" does not exist
- oracle - Is Oracle Database Supported in Joomla?
- c# - Building a block user functionality: how to force user to logout or terminate their existing session
- r - 当列名有空格时,以编程方式从数据框中选择列
- swift - Splitting up Firebase Snapshots into smaller pieces?
- vuejs2 - Vuex 更新后强制 props 在子组件中更新
- oracle - 将oracle中的负数转换为十六进制会给出错误的输出?