File tree Expand file tree Collapse file tree 3 files changed +47
-0
lines changed
solution/0200-0299/0238.Product of Array Except Self Expand file tree Collapse file tree 3 files changed +47
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution
2+ {
3+ public:
4+ vector<int > productExceptSelf (vector<int > &nums)
5+ {
6+ vector<int > dpLeft (nums.size (), 1 );
7+ vector<int > dpRight (nums.size (), 1 );
8+ for (int i = 1 ; i < nums.size (); i++)
9+ {
10+ dpLeft[i] = dpLeft[i - 1 ] * nums[i - 1 ];
11+ }
12+ for (int i = nums.size () - 2 ; i >= 0 ; i--)
13+ {
14+ dpRight[i] = dpRight[i + 1 ] * nums[i + 1 ];
15+ }
16+ vector<int > result;
17+ for (int i = 0 ; i < nums.size (); i++)
18+ {
19+ result.push_back (dpLeft[i] * dpRight[i]);
20+ }
21+ return result;
22+ }
23+ };
Original file line number Diff line number Diff line change 1+ impl Solution {
2+ pub fn product_except_self ( nums : Vec < i32 > ) -> Vec < i32 > {
3+ let mut dp_left=vec ! [ 1_i32 ; nums. len( ) ] ;
4+ let mut dp_right=vec ! [ 1_i32 ; nums. len( ) ] ;
5+ for i in 1 ..nums. len ( ) {
6+ dp_left[ i] =dp_left[ i-1 ] * nums[ i-1 ] ;
7+ }
8+ for i in ( 0 ..( nums. len ( ) -1 ) ) . rev ( ) {
9+ dp_right[ i] =dp_right[ i+1 ] * nums[ i+1 ] ;
10+ }
11+ dp_left. into_iter ( ) . enumerate ( ) . map ( |( i, x) | x* dp_right[ i] ) . collect ( )
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ function productExceptSelf ( nums : number [ ] ) : number [ ] {
2+ let dpLeft = Array ( nums . length ) . fill ( 1 ) ;
3+ let dpRight = Array ( nums . length ) . fill ( 1 ) ;
4+ for ( let i = 1 ; i < nums . length ; i ++ ) {
5+ dpLeft [ i ] = dpLeft [ i - 1 ] * nums [ i - 1 ] ;
6+ }
7+ for ( let i = nums . length - 2 ; i >= 0 ; i -- ) {
8+ dpRight [ i ] = dpRight [ i + 1 ] * nums [ i + 1 ] ;
9+ }
10+ return dpLeft . map ( ( x , i ) => x * dpRight [ i ] ) ;
11+ }
You can’t perform that action at this time.
0 commit comments