File tree 1 file changed +18
-19
lines changed
scripts/algorithms/P/Product of Array Except Self
1 file changed +18
-19
lines changed Original file line number Diff line number Diff line change
1
+ // Runtime: 2 ms (Top 62.8%) | Memory: 54.05 MB (Top 10.0%)
2
+
1
3
class Solution {
2
4
public int [] productExceptSelf (int [] nums ) {
3
- int size = nums .length ;
4
- int [] prefix = new int [size ];
5
- int [] suffix = new int [size ];
6
- int [] answer = new int [ size ] ;
7
- prefix [ 0 ]= nums [ 0 ] ;
8
- suffix [ size - 1 ]= nums [ size - 1 ];
9
- for (int i = 1 ; i < size ; i ++){
10
- prefix [i ]= prefix [ i - 1 ]* nums [i ];
5
+ int n = nums .length ;
6
+ int pre [] = new int [n ];
7
+ int suff [] = new int [n ];
8
+ pre [ 0 ] = 1 ;
9
+ suff [ n - 1 ] = 1 ;
10
+
11
+ for (int i = 1 ; i < n ; i ++) {
12
+ pre [i ] = pre [ i - 1 ] * nums [i - 1 ];
11
13
}
12
- for (int i = size - 2 ; i >= 0 ; i --){
13
- suffix [i ]= suffix [ i + 1 ]* nums [i ];
14
+ for (int i = n - 2 ; i >= 0 ; i --) {
15
+ suff [i ] = suff [ i + 1 ] * nums [i + 1 ];
14
16
}
15
- answer [ 0 ]= suffix [ 1 ];
16
- answer [ size - 1 ]= prefix [ size - 1 - 1 ];
17
- for (int i = 1 ; i < size - 1 ; i ++){
18
- answer [i ]= prefix [ i - 1 ]* suffix [ i + 1 ];
17
+
18
+ int ans [] = new int [ n ];
19
+ for (int i = 0 ; i < n ; i ++) {
20
+ ans [i ] = pre [ i ] * suff [ i ];
19
21
}
20
- // System.out.println(Arrays.toString(prefix)+'\n'+Arrays.toString(suffix));
21
- return answer ;
22
+ return ans ;
22
23
}
23
- }
24
-
25
-
24
+ }
You can’t perform that action at this time.
0 commit comments