ika 6 年之前
父节点
当前提交
a4dc99ff8f
共有 1 个文件被更改,包括 8 次插入11 次删除
  1. 8 11
      medium/90.go

+ 8 - 11
medium/90.go

@@ -17,20 +17,16 @@ type Int2DSlice [][]int
 
 func (p Int2DSlice) Len() int { return len(p) }
 func (p Int2DSlice) Less(i, j int) bool {
-	if len(p[i]) == 0 {
-		return true
-	}
-	if len(p[j]) == 0 {
-		return false
+	if len(p[i]) == 0 || len(p[j]) == 0 {
+		return len(p[i]) == 0
 	}
 	bound := minInt(len(p[i]), len(p[j]))
-	fmt.Println(p[i][0], p[j][0], bound)
 	for k := 0; k < bound; k++ {
-		if p[i][k] < p[j][k] {
-			return true
+		if p[i][k] != p[j][k] {
+			return p[i][k] < p[j][k]
 		}
 	}
-	return len(p[i]) == bound
+	return len(p[i]) < len(p[j])
 }
 func (p Int2DSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
 
@@ -56,15 +52,16 @@ func subsetsWithDup(nums []int) [][]int {
 	subsetsMap := make(map[string]bool, 0)
 	result := subsetsWithDupIter(nums, subsets, subsetsMap)
 	sort.Sort(Int2DSlice(result))
+	fmt.Println(subsetsMap)
 	return result
 }
 
 func testSubsetsWithDup(nums []int) {
 	subsets := subsetsWithDup(nums)
-	fmt.Println("The subsets of", nums, "is", subsets)
+	fmt.Println("\nThe subsets of", nums, "is", subsets)
 }
 
 func main() {
-	nums := []int{1, 2, 1, 2}
+	nums := []int{1, 2, 2, 1, 2, 3, 5, 7, 2}
 	testSubsetsWithDup(nums)
 }