dengxinyi 6 년 전
부모
커밋
1616b1e0fa
2개의 변경된 파일34개의 추가작업 그리고 0개의 파일을 삭제
  1. 31 0
      medium/473.matchsticks-to-square.go
  2. 3 0
      medium/474.ones-and-zeroes.go

+ 31 - 0
medium/473.matchsticks-to-square.go

@@ -0,0 +1,31 @@
+func makesquare(nums []int) bool {
+	n := len(nums)
+	if n < 4 {
+		return false
+	}
+	sum := 0
+	for _, i := range nums {
+		sum += i
+	}
+	if sum%4 != 0 {
+		return false
+	}
+	sort.Sort(sort.Reverse(sort.IntSlice(nums))) // It's super effective!
+	return dfs(nums, make([]int, 4), n, 0, sum/4)
+}
+
+func dfs(nums []int, sums []int, n int, idx int, target int) bool {
+	if idx == n {
+		return sums[0] == target && sums[1] == target && sums[2] == target
+	}
+	for i := 0; i < 4; i++ {
+		if sums[i]+nums[idx] <= target {
+			sums[i] += nums[idx]
+			if dfs(nums, sums, n, idx+1, target) {
+				return true
+			}
+			sums[i] -= nums[idx]
+		}
+	}
+	return false
+}

+ 3 - 0
medium/474.ones-and-zeroes.go

@@ -0,0 +1,3 @@
+func findMaxForm(strs []string, m int, n int) int {
+    
+}