
Given a list of 2D bounding boxes and a list of confidence scores of equal length, implement Non-Maximum Suppression (NMS). Each box is represented as [x1, y1, x2, y2], where (x1, y1) is the top-left corner and (x2, y2) is the bottom-right corner. Return the indices of the boxes kept after suppressing boxes whose Intersection over Union (IoU) with a higher-scoring box is greater than a given threshold.
1 <= len(boxes) == len(scores) <= 10^4boxes[i].length == 40 <= x1 < x2 <= 10^60 <= y1 < y2 <= 10^60.0 <= scores[i] <= 1.0