当前位置: 首页 > wzjs >正文

免费一键网站做小程序要多少钱

免费一键网站,做小程序要多少钱,烟草外网网站建设,网站建设河北石家庄💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 算法每日一练 (11)全排列题目描述解题思路解题代码c/c…

💢欢迎来到张胤尘的技术站
💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥

文章目录

  • 算法每日一练 (11)
    • 全排列
      • 题目描述
      • 解题思路
      • 解题代码
        • `c/c++`
        • `golang`
        • `lua`

官方站点: 力扣 Leetcode

算法每日一练 (11)

全排列

题目地址:全排列

题目描述

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同

解题思路

  • 整体解题流程采用回溯的思路。
  • 首先递归终止条件,如果当前状态已经满足了子集的条件,则返回到上一层。在本题中,递归终止条件就是当前索引到达了数组末尾,则无需向下继续递归。
  • 紧接着就是在递归的过程中,枚举所有可能的选择,并针对每种情况都进行处理。
  • 从当前索引开始,尝试交换每个位置的元素,然后递归的调用 backtrack 方法处理每一种情况。
  • 紧接着回溯是关键步骤,在每次递归返回后,需要撤销当前的选择,恢复到上一步的状态,以便尝试其他可能性。
  • 最后当所有的排列全部列举完毕后,返回 result 结果集即可。

解题代码

c/c++
#include <vector>class Solution
{
public:std::vector<std::vector<int>> permute(std::vector<int> &nums){std::vector<std::vector<int>> result;std::vector<int> current = nums;backtrack(result, current, 0);return result;}private:void backtrack(std::vector<std::vector<int>> &result, std::vector<int> &current, int start){if (start == current.size()){result.push_back(current);return;}for (int i = start; i < current.size(); ++i){std::swap(current[start], current[i]);backtrack(result, current, start + 1);std::swap(current[start], current[i]);}}
};
golang
func permute(nums []int) [][]int {result := [][]int{}backtrack(&result, &nums, 0)return result
}func backtrack(result *[][]int, current *[]int, start int) {sz := len(*current)if start == sz {perm := make([]int, sz)copy(perm, *current)*result = append(*result, perm)return}for i := start; i < sz; i++ {(*current)[i], (*current)[start] = (*current)[start], (*current)[i]backtrack(result, current, start+1)(*current)[i], (*current)[start] = (*current)[start], (*current)[i]}return
}
lua
local function copyTable(t)local copy = {}for i = 1, #t docopy[i] = t[i]endreturn copy
endlocal function backtrack(result, current, start)local sz = #currentif sz == start thentable.insert(result, copyTable(current))returnendfor i = start, sz docurrent[i], current[start] = current[start], current[i]backtrack(result, current, start + 1)current[i], current[start] = current[start], current[i]end
endlocal function permute(nums)local result = {}backtrack(result, nums, 1)return result
end

🌺🌺🌺撒花!

如果本文对你有帮助,就点关注或者留个👍
如果您有任何技术问题或者需要更多其他的内容,请随时向我提问。

在这里插入图片描述

http://www.dtcms.com/wzjs/235025.html

相关文章:

  • 旅游网站在提高用户体验方面应做哪些工作谷歌独立站推广
  • 政府集约化网站建设建议河南网站seo推广
  • 重点实验室网站建设文案代写在哪里接单子
  • wordpress 特色图像是原图seo技术有哪些
  • 深圳市建设安监站网站综合搜索引擎
  • 网站配色分析搜索引擎优化的基本手段
  • 做的网站怎么发网上seo技术网
  • 可以做兼职的网站推荐google手机官网
  • 哪有做网站网页模板怎么用
  • 建设银行怎么加入信用网站百度怎么发自己的小广告
  • 建设县政府门户网站的请示高级seo优化招聘
  • 做网站的背景图片要多大aso优化哪家好
  • 长沙关键词排名首页seo关键词优化培训
  • 怎么创自己的网站网络关键词优化软件
  • 海宁最火高端网站设计推荐单页应用seo如何解决
  • 域名注册好了如何做网站厦门网络营销推广
  • 深圳网站建设公司网站整体优化
  • 做营销网站seo排名规则
  • 酒店网站建设的重要性代写软文
  • 企业网站建设专业的公司seo排名助手
  • 广州市增城建设局网站营销技巧和营销方法视频
  • 二级学院网站建设及利用情况线上销售平台有哪些
  • 成都建设官方网站网站优化及推广
  • 淮南建设厅网站最新的网络营销的案例
  • 专门做pp他的网站百度刷排名seo软件
  • 网站上传文件app推广拉新工作可靠吗
  • 贵阳门户网站建设哪个app可以找培训班
  • 怎么在360做网站深圳网站建设 手机网站建设
  • 邢台做网站可信赖武汉新闻最新消息
  • 织梦网站栏目管理空白百度搜索网址大全