/** * 剑指 Offer 26. 树的子结构 * https://leetcode.cn/problems/shu-de-zi-jie-gou-lcof/ * */ public class Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { if (A == null || B == null) { return false; }
PS 之 基础知识总结 。 新建PS文档,可以通过<预设>中的“纸张大小”,“设备类型”,“剪切板”去新建适合的图片大小。 如果直接复制网页中的图片,打开PS后可以通过“新建”,选择“剪切板”去粘贴到PS中。 需要注意的一点是,如果直接复制电脑中的图片文件,打开PS后,按照“剪切板”的预设
剑指 Offer 13. 机器人的运动范围 难度中等522收藏分享切换为英文接收动态反馈 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之
昨晚熬夜学会了git的基本使用方法。其实git非常简单,有人手把手教或者有好的教程的话三小时就可以完全学会。但是如果使用的教程不正确的话就会像我一样花去整整一周的时间还学不会,有几天晚上花大把大把的时间逐一搜索不知道哪里有问题的操作,解决了旧问题400又出现新问题403,如
inline void dfs(int u, int f) { fa[u][0] = f; dep[u] = dep[f] + 1; for(int i = 1; i <= 26; ++i) fa[u][i] = fa[fa[u][i - 1]][i - 1]; int v; for(int e = hd[u]; e; e = nt[e]) if((v = to[e]) ^ f) dfs(v, u); } inline int LCA(int u, int v) { if(dep[u] < d
前面我们学习了数组,数组是固定长度,可以容纳相同数据类型的元素的集合。当长度固定时,使用还是带来一些限制,比如:我们申请的长度太大浪费内存,太小又不够用鉴于上述原因,我们有了go语言的切片,可以把切片理解为,可变长度的数组,其实它底层就是使用数组实现的,增加了自动扩容功能。切片(Slic
新创建文件夹在opt下创建mysql文件夹 [root@192 ~]# mkdir /opt/mysql 再进入文件夹:场地、opt/mysql/ 进入文件夹后联机网络来下载mysql指定版本: [root@192 mysql]# wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar(下载的是mysql5.7相对稳定) 再用
单元格列索引的问题 在 Excel 中,一个单元格被行列名唯一确定。 例如,A1 单元格表示左上角第 1 个单元格。 行索引为数字,列索引为 A-Z 的字母。 实际上列索引是一种由 26 个字母组成的 26 进制数。当列数超过 26(Z)时,显示为两位字母;超过702(ZZ)时,显示为三位字母,依此类推。 所以一旦我
BFS: 暴力枚举所有情况即可 #include <iostream> #include <queue> using namespace std; int n; string s; string bfs () { queue <string> q; for (int i = 0;i < 26;i++) { string t; t += i+'a'; q.push (t); } while (!q.empty ()) {
前言 1.期中考试前言 期中考试一共三道题,层层递进,每一题都对前一题进行改进,进行更深层面的运用面对对象语言去编程,同时引导我们一步步的去认识去熟悉面对对象编程的魅力,考察到了类的设计、类的继承、多态的使用、抽象类的设计、抽象方法的定义等等。第一题较为基础
题目描述 给定一个含有 26 个小写英文字母的字符串。有m次询问,每次给出2个区间,请问这两个区间里的子字符串是否一样? 输入 第一行输入一个字符串 S。 第二行一个数字 m,表示 m 次询问。 接下来 m 行,每行四个数字 l1,r1,l2,r2,分别表示此次询问的两个区间,注意字符串的位置从1开始编号
题目 公司命名 思路 将所有后缀分成不同的组,利用int 存储每个字母的首字母,状态压缩==> t|=1<<(s[0]-'a'); 递推,cnt[26][26],i,j,cnt[i][j]表示前面的组中 没有i 有j的个数 遍历所有组,如果组中有i字母,而没有j字母既可以增加数值 如果组中没有i字母,但是有j字母,可以为后续的组添加不
import java.util.HashSet; import java.util.Set; class Solution { public long distinctNames(String[] ideas) { int[][] cnt = new int[26][26]; boolean[][] flag = new boolean[ideas.length][26]; Set<String> set = new HashSet&
题目概述: 给你两个长度为 \(n\) 的字符串 \(a,b\),你需要找出 \(b\) 中有多少个不同的子串是 \(a\) 的子序列 思路: 可以枚举 \(a\) 中的子串,可是这样可能会有多个相同的子串被算了多次,那么,我们就可以用 \(Trie\) 树,然后从根节点开始向下搜,枚举每一个子串,看一下在 \(a\) 中有没有。
给定一个字符串 s,计算 s 的 不同非空子序列 的个数 1. 动态规划(记录位置去重) 设dp[i]为以i位置结尾的子序列数目,方便状态的转移 dp[i]= sum(dp[j]) ,j为上一次该字母出现位置到这一次字母出现的所有位置,从上一次出现位置开始主要为了去重 其实就是把该字母拼接到前面这些右边界确
题面传送门 思路 一看就是一道模拟。 注意一下细节就可以了。 代码 #include<bits/stdc++.h> using namespace std; string a,b,c; int x[26],y[26];//分别从两边映射 int main(){ cin>>a>>b>>c; memset(x,-1,sizeof(x)); memset(y,-1,sizeof(y)); for(int i=0;i<a.length();i
好毒瘤啊 目录A. LCISB. 物流运输C. treeD. 建造游乐园 A. LCIS 蓝书原题,CF10D 弱化版 首先直接把 LIS 和 LCS 合起来设计一个 DP . 设 \(dp_{i,j}\) 表示 \(A_{1\dots i}\) 和 \(B_{1\dots j}\) 的以 \(B_j\) 结尾的 LCIS,则: \[dp_{i,j}=\begin{cases}\displaystyle \max_{k<j, B_
题目: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。 进阶: 如果有大量输入的 S,称作 S1, S2, ... , Sk 其中 k >= 10亿,你需要依次检
242. 有效的字母异位词 哈希表方法,可适应更大规模字符集 class Solution: def isAnagram(self, s: str, t: str) -> bool: dict_ = {} for ch in s: if ch in dict_: dict_[ch] += 1 else: dict_[ch
T1. LCIS 数组开小 100pts->60pts 蓝书原题,决策集合最优化\(O(n^2)\) 我用的树(状数组)套树(装数组) 与 值域优化对冲,导致达不到\(O(n ^ 2 (logn) ^2)\)的复杂度,lyin试图卡掉以失败告终 最坏复杂度\(O(n^2 logn )\),好多人\(O(n^4)\)跑得飞快 T2.物流运输 写的状压dp MLE 0pts T3.tree
方法一#include<iostream>//头文件using namespace std;//命名空间int main()//main函数{int a,b,c,d;//设置整形a,b,c,dcin>>a>>b>>c;//输入a,b,cd=(a+b)/c;//d=(a+b)/ccout<<d;//输出dreturn 0;}方法二#include<iostream>//头文件using namespace std;//命名空间int m
这个作业属于哪个课程 至诚软工实践F班 这个作业要求在哪里 作业要求的链接 这个作业的目标 展示项目进展 5月26进展 前后端代码基础功能基本实现。 发现的问题 软件需要要用到服务器辅助,正在商讨方案 安排 一看看服务器价格,继续完善功能 会议照片 7.commit
考虑问两次,一次 \([1,n]\),一次 \([2,n]\),能够得到什么信息:长度为 \(1\) 的串,第一次询问多出来的串就是 \(s_1\);同理,长度为 \(2\) 的串多出来的两个字符,去掉 \(s_1\) 就是 \(s_2\);依此类推之后,发现可以直接求出所有位置的字符,并且字串总长度也没有超。 点击查看代码 const int N=1
18:00 月晕而风,础润而雨,人事虽殊,其理一也。惟善察者能见微知着。 ——张居正 今天公司停电,在本部办公的同事全体休假一
方法一:使用list judge = [] for i in range(26): judge.append( chr(65+25-i) ) # print(judge) n= input() n= [judge[ord(i)-65] if 'A'<=i<='Z' else i for i in n] print(''.join(n)) 方法2:使用map judge = {} for i in range(26):