日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 526. 优美的排列(回溯)

發布時間:2024/7/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 526. 优美的排列(回溯) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

假設有從 1 到 N 的 N 個整數,如果從這 N 個數字中成功構造出一個數組,使得數組的第 i 位 (1 <= i <= N) 滿足如下兩個條件中的一個,我們就稱這個數組為一個優美的排列。條件:

  • 第 i 位的數字能被 i 整除
  • i 能被第 i 位上的數字整除

現在給定一個整數 N,請問可以構造多少個優美的排列?

示例1: 輸入: 2 輸出: 2 解釋:1 個優美的排列是 [1, 2]:1 個位置(i=1)上的數字是11能被 i(i=1)整除第 2 個位置(i=2)上的數字是22能被 i(i=2)整除 第 2 個優美的排列是 [2, 1]:1 個位置(i=1)上的數字是22能被 i(i=1)整除第 2 個位置(i=2)上的數字是1,i(i=2)能被 1 整除 說明: N 是一個正整數,并且不會超過15

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/beautiful-arrangement
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 回溯

class Solution { public:int countArrangement(int N) {bool visited[N+1] = {false};//數字放過了嗎int count = 0;bt(1,N,visited,count);return count;}void bt(int i, int &N, bool* visited, int &count){ // i 表示填到第幾位了if(i == N+1){count++;return;}for(int num = 1; num <= N; ++num){if(!visited[num] && (num%i == 0 || i%num == 0)){visited[num] = true;bt(i+1, N, visited, count);visited[num] = false;}}} };

總結

以上是生活随笔為你收集整理的LeetCode 526. 优美的排列(回溯)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。