File tree Expand file tree Collapse file tree 3 files changed +36
-15
lines changed
closest-nodes-queries-in-a-binary-search-tree
number-of-unequal-triplets-in-array Expand file tree Collapse file tree 3 files changed +36
-15
lines changed Original file line number Diff line number Diff line change @@ -45,6 +45,8 @@ Step 2. Add the dependency
45
45
46
46
<summary >展开查看</summary >
47
47
48
+ https://leetcode.cn/problems/closest-nodes-queries-in-a-binary-search-tree
49
+
48
50
https://leetcode.cn/problems/number-of-unequal-triplets-in-array
49
51
50
52
https://leetcode.cn/problems/find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance/
Original file line number Diff line number Diff line change
1
+ import { TreeNode } from "../binary-tree-inorder-traversal/TreeNode.ts" ;
2
+ import inorderTraversal from "../binary-tree-inorder-traversal/index.ts" ;
3
+ import { lowerBound } from "../maximum-profit-in-job-scheduling/lowerBound.ts" ;
4
+ import { upperBound } from "../maximum-profit-in-job-scheduling/upperBound.ts" ;
5
+
6
+ export default function closestNodes (
7
+ root : TreeNode | null ,
8
+ queries : number [ ] ,
9
+ ) : number [ ] [ ] {
10
+ const nums = inorderTraversal ( root ) ;
11
+
12
+ return queries . map ( ( v ) => {
13
+ const left = lowerBound ( 0 , nums . length , ( m ) => nums [ m ] <= v ) ;
14
+ const mini = nums [ left - 1 ] <= v ? nums [ left - 1 ] : - 1 ;
15
+ const right = upperBound ( 0 , nums . length , ( m ) => nums [ m ] >= v ) ;
16
+ const maxi = nums [ right ] >= v ? nums [ right ] : - 1 ;
17
+ return [ mini , maxi ] ;
18
+ } ) ;
19
+ }
Original file line number Diff line number Diff line change 1
- export default function unequalTriplets ( nums : number [ ] ) : number {
2
- nums . sort ( ( a , b ) => a - b ) ;
3
-
4
- let ans = 0 ;
5
- let start = 0 ;
6
- const n = nums . length ;
7
- for ( let i = 0 ; i < n - 1 ; i ++ ) {
8
- const x = nums [ i ] ;
9
- if ( x != nums [ i + 1 ] ) {
10
- ans += start * ( i - start + 1 ) * ( n - 1 - i ) ;
11
- start = i + 1 ;
12
- }
13
- }
14
- return ans ;
15
- }
1
+ export default function unequalTriplets ( nums : number [ ] ) : number {
2
+ nums . sort ( ( a , b ) => a - b ) ;
3
+
4
+ let ans = 0 ;
5
+ let start = 0 ;
6
+ const n = nums . length ;
7
+ for ( let i = 0 ; i < n - 1 ; i ++ ) {
8
+ const x = nums [ i ] ;
9
+ if ( x != nums [ i + 1 ] ) {
10
+ ans += start * ( i - start + 1 ) * ( n - 1 - i ) ;
11
+ start = i + 1 ;
12
+ }
13
+ }
14
+ return ans ;
15
+ }
You can’t perform that action at this time.
0 commit comments