楠君的小窝
792. 匹配子序列的单词数
题目: 给定字符串 s 和字符串数组 words, 返回 words[i] 中是s的子序列的单词个数 。 字符串的 子序列 是从原始字符串中生成的新字符串,可以从中删去一些字符(可以是none),而不改变其余字符的相对顺序。 例如, “ace” 是 “abcde” 的子序列。 示例 1: 123输入: s = "abcde", words = ["a","bb","acd","ace"]输出: 3解释: 有三个是 s 的子序列的单词: "a", "acd", "ace"。 Example 2: 12输入: s = "dsahjpjauf", words = ["ahjpjau","ja","ahbwzgqnuk","tnmlanowax"]输出: 2 提示: 1 <= s.length <= 5 * 104 1 & ...
PySide6
安装 清华镜像源 1https://pypi.tuna.tsinghua.edu.cn/simple/ 因为python默认使用的是外国的源 我们打开Pycharm,找到设置里面的库 打开管理库,然后将清华源导入进去即可 QT设计师 pyside6-designer.exe 这个是QT的设计软件,可以进行一个可视化设计我们的应用 UI文件转化成Python文件 1PySide6-uic UI名 -o 生成的Python名 .qrc转化成.py(pyqt5) 1pyrcc5 qrc文件名 -o 生成的python名 .qrc转化成.py(pyside6) 1pyside6-rcc qrc文件名 -o 生成的python名 初始化UI的Python文件 首先我们要导入我们的UI 1from 文件名 import 类名 继承 12345class MainWindow(QMainWindow): # QMainWindow是QT中的一个类 def __init__(self): super(MainWindow, self).__init__() self. ...
LC775.全局倒置与局部倒置
题目: 给你一个长度为 n 的整数数组 nums ,表示由范围 [0, n - 1] 内所有整数组成的一个排列。 全局倒置 的数目等于满足下述条件不同下标对 (i, j) 的数目: 0 <= i < j < n nums[i] > nums[j] 局部倒置 的数目等于满足下述条件的下标 i 的数目: 0 <= i < n - 1 nums[i] > nums[i + 1] 当数组 nums 中 全局倒置 的数量等于 局部倒置 的数量时,返回 true ;否则,返回 false 。 示例 1: 输入:nums = [1,0,2] 输出:true 解释:有 1 个全局倒置,和 1 个局部倒置。 示例 2: 输入:nums = [1,2,0] 输出:false 解释:有 2 个全局倒置,和 1 个局部倒置。 提示: n == nums.length 1 <= n <= 105 0 <= nums[i] < n nums 中的所有整数 互不相同 nums 是范围 [0, n - 1] 内所有数字组成的一个排列 解题思路: ...
LC1710.卡车上的最大单元数
题目: 请你将一些箱子装在 一辆卡车 上。给你一个二维数组 boxTypes ,其中 boxTypes[i] = [numberOfBoxesi, numberOfUnitsPerBoxi] : numberOfBoxesi 是类型 i 的箱子的数量。 numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。 整数 truckSize 表示卡车上可以装载 箱子 的 最大数量 。只要箱子数量不超过 truckSize ,你就可以选择任意箱子装到卡车上。 返回卡车可以装载 单元 的 最大 总数。 示例 1: 输入:boxTypes = [[1,3],[2,2],[3,1]], truckSize = 4 输出:8 解释:箱子的情况如下: 1 个第一类的箱子,里面含 3 个单元。 2 个第二类的箱子,每个里面含 2 个单元。 3 个第三类的箱子,每个里面含 1 个单元。 可以选择第一类和第二类的所有箱子,以及第三类的一个箱子。 单元总数 = (1 * 3) + (2 * 2) + (1 * 1) = 8 示例 2: 输入:boxTypes = [[5,10], ...
PyMySQL
连接数据库 123456789import pymysqldata = pymysql.connect(host="127.0.0.1", # host属性 port=3306, # 默认端口 user='root', # 用户名 password='123456', # 密码 charset='utf8mb4', # 编码 db='itcast' # 数据库名 ) 这里要注意一点要记得加 逗号 , 接收的数据类型 pymysql默认接收的数据类型是 tuple,需要去修改他的参数 1cursor = data.cursor(cursor=pymysql.cursor.DictCursor) 发送指令 增加数据 12cursor.execute(&q ...
LC790.多米诺和托米诺平铺
解题思路: 这题解题思路完全来自灵神 (灵茶山艾府) https://leetcode.cn/problems/domino-and-tromino-tiling/solution/by-endlesscheng-umpp/ 代码: Python: 12345678910MOD = 10 ** 9 + 7class Solution: def numTilings(self, n: int) -> int: if n == 1: return 1 f = [0] * (n + 1) f[0] = f[1] = 1 f[2] = 2 for i in range(3, n + 1): f[i] = (f[i - 1] * 2 + f[i - 3]) % MOD return f[n] C++ 123456789101112131415class Solution {public: int numTilings(int n) { lo ...
LC239.滑动窗口最大值
题目: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 123输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值 [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7 示例 2: 12输入:nums = [1], k = 1输出:[1] 提示: 1 <= nums.length <= 105 -104 <= nums[i] <= 104 1 <= k &l ...
LC150.逆波兰表达式求值
题目: 根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 注意 两个整数之间的除法只保留整数部分。 可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入:tokens = [“2”,“1”,“+”,“3”,“*”] 输出:9 解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9 示例 2: 输入:tokens = [“4”,“13”,“5”,“/”,“+”] 输出:6 解释:该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6 示例 3: 输入:tokens = [“10”,“6”,“9”,“3”,“+”,“-11”,““,”/“,””,“17”,“+”,“5”,“+”] 输出:22 解释:该算式转化为常见的中缀算术表达式为: ((10 * (6 / ((9 + 3) * -11))) + 17) + 5 = ((10 * (6 / (12 * -11))) + 17) + 5 = ((10 * (6 / ...
LC20.有效的括号
1 题目: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 示例 1: 输入:s = “()” 输出:true 示例 2: 输入:s = “()[]{}” 输出:true 示例 3: 输入:s = “(]” 输出:false 提示: 1 <= s.length <= 104 s 仅由括号 '()[]{}' 组成 解题思路: 将每个左括号与右括号进行匹配,若出现多余的括号或者右括号与前面的左括号类型不一样就返回 false 那么我们就可以用到 后进先出 的数据结构 栈 代码: Python: 123456789101112131415161718class Solution: def isValid(self, s: str) -> bool: stack = [] l, r = {'(', ' ...
LC225.用队列实现栈
题目: 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返回栈顶元素。 boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。 注意: 你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。 你所使用的语言也许不支持队列。 你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。 示例: 输入: [“MyStack”, “push”, “push”, “top”, “pop”, “empty”] [[], [1], [2], [], [], []] 输出: [null, null, null, 2, 2, false] 解释: MyStack myStack = new MyStack ...
LC232.用栈实现队列
题目: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空,返回 true ;否则,返回 false 说明: 你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。 你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。 示例 1: 输入: [“MyQueue”, “push”, “push”, “peek”, “pop”, “empty”] [[], [1], [2], [], [], []] 输出: [null, null, null, 1, 1, false] 解释: MyQueue myQueue = new MyQueue() ...
LC864.获得所有钥匙的最短路径
解题思路: 状态压缩 + BFS 利用钥匙不超过6并且按字母顺序排列,我们可以使用 int 类型二进制代表当前的钥匙收集情况 若 state 的二进制中的第 k 位为 1,代表当前编号的钥匙已经被收集了,后续遇到对应的锁可以打开。 若 state的二进制中第 k 位为 0,代表当前种类编号为 k 的钥匙未被收集,后续移动若遇到对应的锁则无法通过 以上为状态压缩 使用这样的方式以后,我们就要开始 钥匙检测 和 更新钥匙收集状态 : 钥匙检测:(state >> k) & 1 若返回 1 则说明存在编号为K的钥匙 更新钥匙收集状态:state |= 1 << k, 将state第K位设置为 1,仅代表当前更新收集到新种类的编号为K的钥匙。 接下来就是 BFS 查找过程了: 遍历一遍棋盘,查找起点 @ 并将其入队列,队列的维护是 (x, y, state) 的三元组状态, 其中x, y是位置,state为钥匙收集状态。 查找的起点的同时我们要记录钥匙的数量,并使用哈希表或者数组记录每个状态所需要消耗最少步数 step 进行四联通方向的 BFS ,转移过程 ...
avatar
🐟认真摸鱼中
楠君的小窝
Live is so good
前往小窝
公告栏
--- 主域名 ---
fomal.cc | fomal.cn
--- 备用域名 ---
netlify.fomal.cc
cloudflare.fomal.cc
--- 网站安卓APP ---
🍧点此下载🍧
小站资讯
文章数目 :
111
本站总字数 :
6.3w
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面