(int[] nums)
| 26 | // build the segment tree and store it in array of size 2 * nums[] length |
| 27 | // so the nums[] values are stores at leaves of the segment tree. |
| 28 | private void buildTree(int[] nums) { |
| 29 | for (int i = n, j = 0; i < 2 * n; i++, j++) |
| 30 | tree[i] = nums[j]; |
| 31 | for (int i = n - 1; i > 0; --i) |
| 32 | tree[i] = tree[i * 2] + tree[i * 2 + 1]; |
| 33 | } |
| 34 | |
| 35 | // update the segment tree if new value to be inserted in tree, then update its parent at pos/2 and so on till root |
| 36 | void update(int pos, int val) { |