Skip to content

Commit 3d414fc

Browse files
committed
running sum
1 parent cf5c142 commit 3d414fc

6 files changed

+177
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
*&---------------------------------------------------------------------*
2+
*& Report Z_LC_RUNNING_SUM_1D_ARRAY
3+
*&---------------------------------------------------------------------*
4+
*&
5+
*&---------------------------------------------------------------------*
6+
REPORT z_lc_running_sum_1d_array.
7+
8+
TYPES: lty_i TYPE STANDARD TABLE OF i WITH EMPTY KEY .
9+
10+
11+
DATA(lt_values) = VALUE lty_i( ( 2 ) ( 1 ) ( 3 ) ( 6 ) ( 9 ) ( 5 ) ) .
12+
13+
DATA: sum TYPE i.
14+
15+
LOOP AT lt_values ASSIGNING FIELD-SYMBOL(<fs_data>).
16+
17+
sum = sum + <fs_data>.
18+
19+
<fs_data> = sum.
20+
21+
WRITE: / <fs_data>.
22+
23+
ENDLOOP.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<PROGDIR>
6+
<NAME>Z_LC_RUNNING_SUM_1D_ARRAY</NAME>
7+
<SUBC>1</SUBC>
8+
<RLOAD>E</RLOAD>
9+
<FIXPT>X</FIXPT>
10+
<UCCHECK>X</UCCHECK>
11+
</PROGDIR>
12+
<TPOOL>
13+
<item>
14+
<ID>R</ID>
15+
<ENTRY>Program Z_LC_RUNNING_SUM_1D_ARRAY</ENTRY>
16+
<LENGTH>33</LENGTH>
17+
</item>
18+
</TPOOL>
19+
</asx:values>
20+
</asx:abap>
21+
</abapGit>
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
*&---------------------------------------------------------------------*
2+
*& Report Z_LC_SORTED_SQUARE_ARRAY
3+
*&---------------------------------------------------------------------*
4+
*&
5+
*&---------------------------------------------------------------------*
6+
REPORT z_lc_sorted_square_array.
7+
8+
*Given an array of integers A sorted in non-decreasing order, return an array of the squares of each number, also in sorted non-decreasing order.
9+
10+
*Example 1:
11+
*Input: [-4,-1,0,3,10]
12+
*Output: [0,1,9,16,100]
13+
14+
*Example 2:
15+
*Input: [-7,-3,2,3,11]
16+
*Output: [4,9,9,49,121]
17+
18+
*Approach:
19+
*Two pointers will be used from the end of the array and beginning of the array.
20+
*Compare the absolute value of the negative value with the positive value from the end of the array.
21+
*Whichever is greater would be placed in a final array after multiplying with its own number (for squaring it)
22+
*Incrementing the starting index or Decrementing the index from the end based on which value has been taken for inserting in to the final array
23+
24+
25+
TYPES: lty_i TYPE STANDARD TABLE OF i WITH EMPTY KEY .
26+
DATA: lt_final TYPE lty_i.
27+
28+
DATA(lt_values) = VALUE lty_i( ( -6 ) ( -4 ) ( 0 ) ( 1 ) ( 2 ) ( 5 ) ( 7 ) ) .
29+
30+
DATA(lv_len) = lines( lt_values ).
31+
32+
DATA(i) = 1.
33+
DATA(j) = lv_len.
34+
35+
DO lv_len TIMES.
36+
37+
DATA(k) = sy-index.
38+
39+
IF abs( lt_values[ i ] ) >= lt_values[ j ].
40+
41+
APPEND lt_values[ i ] TO lt_final.
42+
i = i + 1.
43+
ELSE.
44+
APPEND lt_values[ j ] TO lt_final.
45+
46+
j = j - 1.
47+
48+
ENDIF.
49+
50+
lt_final[ k ] = lt_final[ k ] * lt_final[ k ].
51+
52+
WRITE: / lt_final[ k ] .
53+
54+
ENDDO.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<PROGDIR>
6+
<NAME>Z_LC_SORTED_SQUARE_ARRAY</NAME>
7+
<SUBC>1</SUBC>
8+
<RLOAD>E</RLOAD>
9+
<FIXPT>X</FIXPT>
10+
<UCCHECK>X</UCCHECK>
11+
</PROGDIR>
12+
<TPOOL>
13+
<item>
14+
<ID>R</ID>
15+
<ENTRY>Report Z_LC_SORTED_SQUARE_ARRAY</ENTRY>
16+
<LENGTH>31</LENGTH>
17+
</item>
18+
</TPOOL>
19+
</asx:values>
20+
</asx:abap>
21+
</abapGit>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
*&---------------------------------------------------------------------*
2+
*& Report Z_LC_SORTED_SQUARE_ARRAY_ASCEN
3+
*&---------------------------------------------------------------------*
4+
*&
5+
*&---------------------------------------------------------------------*
6+
REPORT z_lc_sorted_square_array_ascen.
7+
8+
*TYPES: lty_i TYPE STANDARD TABLE OF i WITH EMPTY KEY .
9+
*DATA: lt_final TYPE lty_i.
10+
*
11+
*DATA(lt_values) = VALUE lty_i( ( -6 ) ( -4 ) ( 0 ) ( 1 ) ( 2 ) ( 5 ) ( 7 ) ) .
12+
*
13+
*DATA(lv_len) = lines( lt_values ).
14+
*
15+
*DATA(i) = 1.
16+
*DATA(j) = lv_len.
17+
*
18+
*DO lv_len TIMES.
19+
*
20+
* DATA(k) = sy-index.
21+
*
22+
* IF abs( lt_values[ i ] ) >= lt_values[ j ].
23+
*
24+
* APPEND lt_values[ i ] TO lt_final.
25+
* i = i + 1.
26+
* ELSE.
27+
* APPEND lt_values[ j ] TO lt_final.
28+
*
29+
* j = j - 1.
30+
*
31+
* ENDIF.
32+
*
33+
* lt_final[ k ] = lt_final[ k ] * lt_final[ k ].
34+
*
35+
* WRITE: / lt_final[ k ] .
36+
*
37+
*ENDDO.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
3+
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
4+
<asx:values>
5+
<PROGDIR>
6+
<NAME>Z_LC_SORTED_SQUARE_ARRAY_ASCEN</NAME>
7+
<SUBC>1</SUBC>
8+
<RLOAD>E</RLOAD>
9+
<FIXPT>X</FIXPT>
10+
<UCCHECK>X</UCCHECK>
11+
</PROGDIR>
12+
<TPOOL>
13+
<item>
14+
<ID>R</ID>
15+
<ENTRY>Report Z_LC_SORTED_SQUARE_ARRAY_ASCEN</ENTRY>
16+
<LENGTH>37</LENGTH>
17+
</item>
18+
</TPOOL>
19+
</asx:values>
20+
</asx:abap>
21+
</abapGit>

0 commit comments

Comments
 (0)