回答

收藏

给定一个随机排列的 0 和 1 数组,您需要将数组中的 0 和 1 分开

技术问答 技术问答 258 人阅读 | 0 人回复 | 2023-09-12

给出一个随机排列的 0 和 1 数组,您需要将 0 和 1 分开。
* j& V( \0 s4 q5 K: p例如:
; A& x$ h3 w; f. Qarr[] = Array after separating odd and even numbers      2 H, p% c1 m- m9 h# a6 h
    解决方案:                                                               
& j& Z% |8 Y5 m! @                                                                解决方案1:
- T4 c7 V$ ?: Q计算数组中 0 的数量。假设我们得到 X 0/ `- W! D4 {1 `" F! A% J
一旦我们得到计数, X 0 放入数组, (nX) 1 放入数组的后半部分。, B) _& c; E- @3 x) d! x
java代码:/ ?3 }: n: v0 D1 R' u7 z
public static int[] separate0s1sSolution1(int arr {  int count=0;  for (int i = 0; i 时间复杂:O(N)
2 [4 U" j. z; h解决方案2:
- c1 ]8 D* U0 ?) D$ J算法:
9 H2 \3 X; w9 `' D( P1 D  y让我们说数组是 arr[]
8 M" D. y% G& Q3 [; [& g两个索引变量的初始化,left=0 和 right=arr.length-1
/ E5 i% B% e% w$ Z+ V7 J增加左变量加到 1。
7 k( T/ L2 @7 A8 I- N7 X% i; I减少右边的变量,直到你得到 0
% R9 T% Y" N9 j$ e) Z! o如果 left 8 S- ^+ |; r5 h) S9 D" A
最后,你会看到左边是 0,右边是 1。
java代码:$ \: ]* n1 K5 }6 M- a
public static int[] separate0s1sSolution2(int arr {  for (int i = 0; i 用于分隔数组中的奇数和偶数Java 代码:
3 a4 a. t4 T8 c- c: X" Z& Jpackage org.arpit.java2blog;public class Separate0s1sMain { public static void main(String[] args) {  int arr[]= System.out.println("Original Array: ");  for (int i = 0; i 当您操作上述程序时,您将获得以下输出:7 i% e; c9 q( P2 r; ]* }9 ~2 ?
Original Array: 100 100 1 1 1 ===========================Solution 1Array after separating 0's and 1's ===========================Solution 2Array after separating 0's and 1's
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则