环境配置
官网下载最新版本的gymnasium(原gym已经迁移到了gymnasium)
pip install gymnasium
pip install swig
pip install "gymnasium[box2d]"
2025/3/14大约 7 分钟
官网下载最新版本的gymnasium(原gym已经迁移到了gymnasium)
pip install gymnasium
pip install swig
pip install "gymnasium[box2d]"
直接搜
#include <iostream>
#include <vector>
#define debug(x) #x << ": " << x << " "
#define ll long long
using namespace std;
vector<int> arr(10, 0);
vector<int> now;
int n;
void dfs(int j)
{
if (j == 0)
{
for (const auto& i : now)
{
cout << i << " ";
}
cout << "\n";
return;
}
for (int i = 1; i <= n; i++)
{
if (arr[i] != 0)
{
continue;
}
arr[i] = 1;
now.push_back(i);
dfs(j - 1);
arr[i] = 0;
now.pop_back();
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> n;
dfs(n);
return 0;
}
感觉一直没弄明白,今天决定动手实现以下它
Transformer架构包含输入输出、编码器和解码器,核心内容有位置编码、多头注意力、残差和规范化等等。
# 依赖库
import torch
import torch.nn as nn
import torchtext
import torch.optim as opt
import copy
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
438.找到字符串中所有字母异位词的加强版
由于words中的词长度相同,可以把字符串中的单词按这个长度划分,之后思路就类似438了
可以想到,线越靠外越好,并且越高越好,他们分别组成矩形的长和宽,因此,可以用两个指针从两边向内部遍历,而且向内移动指针时,比当前线短的可以跳过,因为他不可能更长。由于宽取决于最短的线,所以每次移动最短线的指针,指针相遇时,结束。
class Solution
{
public:
int maxArea(vector<int> &height)
{
int n = height.size();
int max_s = 0;
int pre = 0;
int i = 0;
int j = n - 1;
int *a = &i;
int sep = 1;
while (i < j)
{
if (height[*a] <= pre)
{
*a += sep;
continue;
}
if (height[i] < height[j])
{
a = &i;
sep = 1;
pre = height[i];
}
else
{
a = &j;
sep = -1;
pre = height[j];
}
max_s = max(max_s, height[*a] * (j - i));
*a += sep;
}
return max_s;
}
};
可以把二叉树分成左右子树,左右子树各自又是一个二叉搜索树,选择好根时,就可以确定左右两边的节点数量,因此,可以从1个节点的二叉搜索树递推。
class Solution
{
public:
int dp[32];
int numTrees(int n)
{
dp[0] = 1;
dp[1] = 1;
dp[2] = 2;
dp[3] = 5;
for (int i = 4; i <= n; i++)
{
dp[i] = 0;
for (int j = 0; j < i / 2; j++)
{
dp[i] += dp[j] * dp[i - 1 - j];
}
dp[i] *= 2;
if (i % 2 == 1)
{
dp[i] += dp[i / 2] * dp[i / 2];
}
}
return dp[n];
}
};