From e487aca70cb0fb0cba7ccc16c7ef510c60e59a02 Mon Sep 17 00:00:00 2001 From: labuladong Date: Tue, 4 Apr 2023 10:56:53 +0800 Subject: [PATCH] update content --- .../\351\233\206\345\220\210\345\210\222\345\210\206.md" | 6 ++++-- ...\206\346\216\222\345\210\227\347\273\204\345\220\210.md" | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\351\233\206\345\220\210\345\210\222\345\210\206.md" "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\351\233\206\345\220\210\345\210\222\345\210\206.md" index 6b72ccef39..ff88d3b109 100644 --- "a/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\351\233\206\345\220\210\345\210\222\345\210\206.md" +++ "b/\347\256\227\346\263\225\346\200\235\347\273\264\347\263\273\345\210\227/\351\233\206\345\220\210\345\210\222\345\210\206.md" @@ -24,14 +24,16 @@ tags: ['回溯算法'] **-----------** -之前说过回溯算法是笔试中最好用的算法,只要你没什么思路,就用回溯算法暴力求解,即便不能通过所有测试用例,多少能过一点。 +我之前说过回溯算法是笔试中最好用的算法,只要你没什么思路,就用回溯算法暴力求解,即便不能通过所有测试用例,多少能过一点。 -回溯算法的技巧也不难,前文 [回溯算法框架套路](https://labuladong.github.io/article/fname.html?fname=回溯算法详解修订版) 说过,回溯算法就是穷举一棵决策树的过程,只要在递归之前「做选择」,在递归之后「撤销选择」就行了。 +回溯算法的技巧也不算难,前文 [回溯算法框架套路](https://labuladong.github.io/article/fname.html?fname=回溯算法详解修订版) 说过,回溯算法就是穷举一棵决策树的过程,只要在递归之前「做选择」,在递归之后「撤销选择」就行了。 **但是,就算暴力穷举,不同的思路也有优劣之分**。 本文就来看一道非常经典的回溯算法问题,力扣第 698 题「划分为k个相等的子集」。这道题可以帮你更深刻理解回溯算法的思维,得心应手地写出回溯函数。 +> note:阅读本文之前,建议先阅读并理解 [回溯算法秒杀排列/组合/子集问题](https://labuladong.github.io/article/fname.html?fname=子集排列组合)。因为本文这道题所求的就是子集的问题,有一些模式和套路和原始的子集问题是非常类似的,可以结合着理解。 + 题目非常简单: 给你输入一个数组 `nums` 和一个正整数 `k`,请你判断 `nums` 是否能够被平分为元素和相同的 `k` 个子集。 diff --git "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\255\220\351\233\206\346\216\222\345\210\227\347\273\204\345\220\210.md" "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\255\220\351\233\206\346\216\222\345\210\227\347\273\204\345\220\210.md" index 57b792efda..55c0048028 100644 --- "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\255\220\351\233\206\346\216\222\345\210\227\347\273\204\345\220\210.md" +++ "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\255\220\351\233\206\346\216\222\345\210\227\347\273\204\345\220\210.md" @@ -976,6 +976,7 @@ void backtrack(int[] nums) { - [回溯算法解题套路框架](https://labuladong.github.io/article/fname.html?fname=回溯算法详解修订版) - [我的刷题心得](https://labuladong.github.io/article/fname.html?fname=算法心得) - [算法时空复杂度分析实用指南](https://labuladong.github.io/article/fname.html?fname=时间复杂度) + - [经典回溯算法:集合划分问题](https://labuladong.github.io/article/fname.html?fname=集合划分)