楠君的小窝
SQL基础篇
DDL-数据库操作 查询: 查询所有数据库: 1SHOW DATABASES; 查询当前数据库: 1SELECT DATABASE(); 创建: 1CREATE DATABASE [IF NOT EXISTS]数据库 [DEFAULT CHARSET 字符集] [COLLATE 排序规则] 删除: 1DROP DATABASE [IF EXISTS]数据库; 使用: 1USE 数据库名; DDL-表操作-查询 查询当前数据库所有表 1SHOW TABLES; 查询表结构 1DESC 表名; 查询指定表的建表语句 1SHOW CREATE TABLE 表名; DDL-表操作-创建 1234567CREATE TABLE 表名( 字段1 字段1类型[COMMENT 字段1注释], 字段2 字段2类型[COMMENT 字段2注释], 字段3 字段3类型[COMMENT 字段3注释], ..... 字段n 字段n类型[COMMENT 字段n注释])[COMMENT 表注释] DDL-表操作-数据类型 整数类型 字符串类型 日期类型 DDL-表操作-修改 添加字段 1ALTER TA ...
209.长度最小的子数组
题目 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1: 123输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。 示例 2: 12输入:target = 4, nums = [1,4,4]输出:1 示例 3: 12输入:target = 11, nums = [1,1,1,1,1,1,1,1]输出:0 提示: 1 <= target <= 109 1 <= nums.length <= 105 1 <= nums[i] <= 105 进阶: 如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。 解题思路: 双指针: 一个左指针,一个右指针。 右指针不断右移,直到 s >= target 时 ...
LC151.反转字符串中的单词
题目: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。 示例 1: 12输入:s = "the sky is blue"输出:"blue is sky the" 示例 2: 123输入:s = " hello world "输出:"world hello"解释:反转后的字符串中不能存在前导空格和尾随空格。 示例 3: 123输入:s = "a good example"输出:"example good a"解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。 提示: 1 <= s.length <= 104 s 包含英文 ...
LC541.反转字符串||
题目 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例 1: 12输入:s = "abcdefg", k = 2输出:"bacdfeg" 示例 2: 12输入:s = "abcd", k = 2输出:"bacd" 提示: 1 <= s.length <= 104 s 仅由小写英文组成 1 <= k <= 104 解题思路: 其实这题很简单,我们只要改变一下思路就行 题目说"如果剩余字符小于 2K 但大于等于 K,则反转前 K,其余字符保持原样" 那么我们可以将这句话理解成,若剩余字符大于等于 2K 则我们就将 2K 的起点 + K 反转,其余的保持原样 代码: Python 1234567891011class Solution: def re ...
LC344.反转字符串
解题思路: 调用API C++ 中的 reverse 和 Python中的 reversed 或者 切片 双指针 定义两个指针left 和 right 从两边往中间靠,更改指针对应的字符 代码实现: Python API: 12def reverseString(self, s: List[str]) -> None: return list(reversed(s)) 双指针: 1234567def reverseString(self, s: List[str]) -> None: l, r = 0, len(s) - 1 while l < r: s[l], s[r] = s[r], s[l] l += 1 r -= 1 return s C++ 双指针: 1234567891011class Solution {public: void reverseString(vector<char>& s) { int l = 0, r = s.size ...
LC1684.统计一致字符串的数目
解题思路: 这题可以直接运用位运算解得 代码: Python 1234567891011def countConsistentStrings(allowed: str, words: list[str]) -> int: mask = 0 for c in allowed: mask |= 1 << (ord(c) - ord('a')) res = 0 for word in words: mask1 = 0 for c in word: mask1 |= 1 << (ord(c) - ord('a')) res += (mask | mask1) == mask return res C++ 12345678910111213141516171819class Solution {public: int countConsistentStrings(string allowed, vecto ...
LC1678.设计Goal解析器
题目: 请你设计一个可以解释字符串 command 的 Goal 解析器 。command 由 “G”、“()” 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、“()” 解释为字符串 “o” ,“(al)” 解释为字符串 “al” 。然后,按原顺序将经解释得到的字符串连接成一个字符串。 给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。 示例 1: 输入:command = “G()(al)” 输出:“Goal” 解释:Goal 解析器解释命令的步骤如下所示: G -> G () -> o (al) -> al 最后连接得到的结果是 “Goal” 示例 2: 输入:command = “G()()()()(al)” 输出:“Gooooal” 示例 3: 输入:command = “(al)G(al)()()G” 输出:“alGalooG” 提示: 1 <= command.length <= 100 command 由 "G"、"()" ...
PAT1059 C语言竞赛
题目: C 语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽: 0、冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。 1、排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶! 2、其他人将得到巧克力。 给定比赛的最终排名以及一系列参赛者的 ID,你要给出这些参赛者应该获得的奖品。 输入格式: 输入第一行给出一个正整数 N(≤104),是参赛者人数。随后 N 行给出最终排名,每行按排名顺序给出一位参赛者的 ID(4 位数字组成)。接下来给出一个正整数 K 以及 K 个需要查询的 ID。 输出格式: 对每个要查询的 ID,在一行中输出 ID: 奖品,其中奖品或者是 Mystery Award(神秘大奖)、或者是 Minion(小黄人)、或者是 Chocolate(巧克力)。如果所查 ID 根本不在排名里,打印 Are you kidding?(耍我呢?)。如果该 ID 已经查过了(即奖品已经领过了),打印 ID: Checked(不能多吃多占)。 输入样例: 123456789101112131461111666688 ...
PAT1019.数字黑洞
题目: 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。 例如,我们从6767开始,将得到 1234567766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532 - 2358 = 61747641 - 1467 = 6174... ... 现给定任意 4 位正整数,请编写程序演示到达黑洞的过程。 输入格式: 输入给出一个 (0,104) 区间内的正整数 N。 输出格式: 如果 N 的 4 位数字全相等,则在一行内输出 N - N = 0000;否则将计算的每一步在一行内输出,直到 6174 作为差出现,输出格式见样例。注意每个数字按 4 位数格式输出。 输入样例 1: 16767 输出样例 1: 12347766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 835285 ...
PAT1038.统计同成绩学生
题目: 本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出。 输入格式: 输入在第 1 行给出不超过 105 的正整数 N,即学生总人数。随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔。最后一行给出要查询的分数个数 K(不超过 N 的正整数),随后是 K 个分数,中间以空格分隔。 输出格式: 在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。 输入样例: 1231060 75 90 55 75 99 82 90 75 503 75 90 88 输出样例: 13 2 0 代码长度限制:16 KB 时间限制:250 ms 内存限制:64 MB 解题思路: 数据结构: 哈希表,Python里的Counter, C++ 里的unordered_map<int,int> 当然由于这题数据量小,总分只有100,我们完全可以创建一个长度100的数组。 思路: 将所有成绩出现的次数记录一下,在最后遍历 grade 输出即可。 题目留下的坑: 目前位置,你按照上面的思路可以通过前3个测试点,当遇到第4个测试点的时候会错误,因为最后 ...
LC754.到达终点数字
题目: 在一根无限长的数轴上,你站在0的位置。终点在target的位置。 你可以做一些数量的移动 numMoves : 每次你可以选择向左或向右移动。 第 i 次移动(从 i == 1 开始,到 i == numMoves ),在选择的方向上走 i 步。 给定整数 target ,返回 到达目标所需的 最小 移动次数(即最小 numMoves ) 。 示例: 输入:target = 2 输出:3 第一次移动,从 0 到 1. 第二次移动,从 1 到 -1. 第三次移动,从 -1 到 2. 题目解读: 【移动方向】想左或者向右移动 【移动距离】第几次移动就移动多远 ​ 第一步,移动距离1 ​ 第二步,地洞距离2 ​ 第三步,移动距离3 ​ … ​ 第N步,移动距离N 我们要从起点以最小移动次数达到 target 从起点到达 target 的几种可能 向着一个方向一直移动就能达到 target ,此时直接返回 numMoves. 需要向左右两边移动到达 target ,移动 numMoves 到达 target. 解题思路: 第一种情况我们就不说了。 第二种情况: 首先将 ...
PAT1005.继续(3n+1)猜想
前言: 这题一开始我没有看懂,反复读了以后才看明白这题的意思 题目意思个人解读: 题目给我们一个数组的长度,以及数组的元素 我们最数组中的每个元素进行卡拉兹猜想,奇数 (3n + 1) / 2, 偶数 n / 2. 例如: 给我一个数 3 因为 3 是奇数 (3 * 3 + 1) / 2 5 因为 5 是奇数 (5 * 3 + 1) / 2 8 因为 8 是偶数 8 / 2 4 因为 4 是偶数 4 / 2 2 因为 2 是偶数 2 / 2 1 结束 而我们要做的就是将数组中每个元素的卡拉兹猜想数每一步计算后的结果保存起来,我们称这些被保存起来的数为“覆盖数”。 题目要求的是,不是“覆盖数”的元素。 解题思路: 对题目给的每个元素进行卡拉兹猜想 将每个元素的卡拉兹猜想的每一步的结果保存起来 查找题目给的元素与“覆盖数”不重复的那个 将找到的“关键数”进行从大到小的排序 输出“关键数” 代码: 12345678910111213141516171819202122232425262728N = eval(input())nums = input().split ...
avatar
🐟认真摸鱼中
楠君的小窝
Live is so good
前往小窝
公告栏
--- 主域名 ---
fomal.cc | fomal.cn
--- 备用域名 ---
netlify.fomal.cc
cloudflare.fomal.cc
--- 网站安卓APP ---
🍧点此下载🍧
小站资讯
文章数目 :
111
本站总字数 :
6.3w
本站访客数 :
本站总访问量 :
最后更新时间 :
空降评论复制本文地址
随便逛逛昼夜切换关于博客美化设置切换全屏打印页面