File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed
number-of-pairs-satisfying-inequality Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -10,6 +10,8 @@ leetcode 测试
10
10
11
11
##### 包含的内容如下
12
12
13
+ https://leetcode.cn/problems/number-of-pairs-satisfying-inequality/
14
+
13
15
https://leetcode.cn/problems/count-of-smaller-numbers-after-self/
14
16
15
17
https://leetcode.cn/problems/remove-letter-to-equalize-frequency/
Original file line number Diff line number Diff line change
1
+ import { BinaryIndexTree } from "../rank-from-stream-lcci/BinaryIndexTree.ts" ;
2
+ export default function numberOfPairs (
3
+ nums1 : number [ ] ,
4
+ nums2 : number [ ] ,
5
+ diff : number
6
+ ) : number {
7
+ for ( const [ i , x ] of nums2 . entries ( ) ) {
8
+ nums1 [ i ] -= x ;
9
+ }
10
+ const b = Array . from ( nums1 ) . sort ( ( a , b ) => a - b ) ;
11
+ let ans = 0 ;
12
+ const t = new BinaryIndexTree ( nums1 . length ) ;
13
+ for ( const x of nums1 ) {
14
+ ans += t . query ( lowerBound ( b , x + diff + 1 ) ) ;
15
+ t . update ( lowerBound ( b , x ) + 1 , + 1 ) ;
16
+ }
17
+ return ans ;
18
+ }
19
+ export function lowerBound ( a : number [ ] , x : number ) {
20
+ let left = 0 ,
21
+ right = a . length ;
22
+ while ( left < right ) {
23
+ const mid = Math . floor ( left + ( right - left ) / 2 ) ;
24
+ if ( a [ mid ] < x ) left = mid + 1 ;
25
+ else right = mid ;
26
+ }
27
+ return left ;
28
+ }
You can’t perform that action at this time.
0 commit comments