Algorithm
limengshi138392
菜鸟
展开
-
N皇后问题
题目:给你⼀个 N×N 的棋盘,让你放置 N 个皇后,皇后可以攻击同⼀⾏、同⼀列、左上左下右上右下四个⽅向的任意单位棋盘格,如何放置可以使得它们不会互相攻击。一、C++解决N皇后问题#include <iostream>#include <vector>using namespace std;vector<vector<string>> res;bool isValid(vector<string> &a...原创 2021-12-24 11:05:12 · 563 阅读 · 0 评论 -
全排列问题
问题: 有n个不重复的数,请问全排列共有多少种情况,分别是什么排列顺序?一、Java求解全排列问题:1、回溯算法求解全排列问题:import java.util.*;public class Main { List<List<Integer>> res = new LinkedList<>(); public static void main(String[] args) { int[]...原创 2021-12-24 09:54:50 · 917 阅读 · 0 评论 -
凑零钱问题
题⽬:给你k种⾯值的硬币,⾯值分别为c1, c2 ... ck,每种硬币的数量⽆限,再给⼀个总⾦额amount,请问最少需要⼏枚硬币凑出这个⾦额,如果不可能凑出,算法返回 -1 。一、Python求解凑零钱问题 1、暴力递归解法:时间复杂度O(kn^k)def coinChange(coins,amount): def dynamic_programming(n): if n == 0: return 0 if n &l...原创 2021-12-22 18:09:00 · 1388 阅读 · 0 评论 -
斐波那契数列
一、C++ 1、暴力递归解法:时间复杂度 O(2^n)int fibonacciSequence(int N){ if (N == 1 || N ==2) return 1; return fibonacciSequence(N - 1) + fibonacciSequence(N -2);} 2、带备忘录的递归解法:时间复杂度 O(n)int fibonacciSequence(int N) { if (N < 1) retu...原创 2021-12-22 16:44:58 · 627 阅读 · 0 评论