自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 吃灰的python笔记拿出来晒:函数的带*传参与不带*传参

带*传参与不带*传参当想让列表赋值给*args,字典传参给**kwargs时def func(*args, **kwargs): print(args, kwargs)func([1, 2, 3], {'1': 'a'})func(*[1, 2, 3], **{'1': 'a'})运行结果:可以看出,如果不加 * 和 ** ,参数会被前面的*args全部接收,后面的**args接收不到参数,与想达到的效果不一致。...

2020-12-28 22:31:29 212

原创 吃灰的python笔记拿出来晒:集合(set)

python集合(set)集合的特点:符号:{},但是和字典不同,字典:{key:value,……},集合:{元素1,元素2,……}元素不重复关键字:set作用:去重,查找快速集合的声明set1 = set()print(type(set1))set2 = {} # 这种方式是不能声明集合的,声明空集合只能使用上面那种方式print(type(set2))set3 = {1, 2}print(type(set3))运行结果:集合的增删set1 = {

2020-12-27 19:31:44 181

原创 吃灰的python笔记拿出来晒:拆包与装包

python拆包与装包当变量个数与元素个数一致时,只有拆包list1 = [1, 2, 3]a, b, c = list1print(a, b, c)运行结果:当变量个数与元素个数不一致时,先拆包,再把剩余元素装包list1 = [1, 2, 3]a, *b = list1 # 拆包后,把1赋值给a,把剩余元素装包成列表赋值给bprint(a, b)运行结果:也可以用 * 拆包list1 = [1, 2, 3]a, *b = list1 # 拆包后,把1赋值

2020-12-27 14:43:24 213

原创 吃灰的python笔记拿出来晒:字典学习

python字典学习python字典的特点:符号:{}关键字:dict保存的元素: key: value    -对字典的声明方式:在这里插入代码片

2020-12-27 12:09:24 162

原创 吃灰的python笔记拿出来晒:元组学习

python元组学习元组和列表类似,有以下特点:定义的符号:()元组中的内容不可更改关键字:tuple元组的声明方式:t1 = ()print(type(t1))t2 = tuple()print(type(t2))t3 = ('a', 'b')print(type(t3))# 下面这种声明方式也是允许的t4 = ('a',)print(type(t4))运行结果:元组中元素的获取:# 获取方式:下标indext = (1,

2020-12-26 22:51:32 181

原创 吃灰的python笔记拿出来晒:列表学习

python列表学习:python中的列表声明方式:num1 = [1, 2, 3, 4, 5]num2 = []num3 = list()print(num1, num2, num3)运行结果:列表的使用# 元素获取使用:下标 索引nums = [1, 2, 3, 4, 5]print(nums[0])print(nums[1])# 获取最后一个元素print(nums[-1])print(len(nums)-1)# 获取长度print(len(nums)

2020-12-16 20:09:30 264 1

原创 python中字符串支持的运算符及使用方法

python中字符串支持哪些运算符呢?在python中,字符串可以使用以下符号:+*innot inisis not==!=使用方法举例:‘+’ 运算符,拼接字符串的作用s1 = 'hello's2 = 'world'print(s1+s2)运行结果:# '*' 运算符,字符串的倍数s1 = 'a' * 5print(s1)运行结果:in 运算符,判断是否在字符串中,返回布尔类型 True或Falses1 = 'hello world

2020-12-13 22:31:34 4005

原创 python中的单引号,双引号,三引号,引号三连鞭!!!

python中的单引号,双引号,三引号,引号三连鞭!!!python中有单引号,双引号,还有三引号,本文将介绍三种引号的具体用法。python中,单引号和双引号都可以代表字符串,如下所示:a = 'hello world'print(a)b = "hello world"print(b)运行结果:python中单引号和双引号还可以嵌套,但是必须注意可以相互嵌套,但是单引号不可以可以嵌套单引号,双引号不可以嵌套双引号。a = "小明说:'hello world'"print(

2020-12-10 12:00:34 6289 2

原创 Sourceinsight超好看护眼的配色方案!!!每一步都有步骤

设置Sourceinsight超好看护眼的配色方案  Source insight是一款优秀的代码查看神器,功能虽然好用但是它的默认界面看起来像是xp时代的软件,对于tab键还是空格都要纠结的程序员来说,不修改一下界面配色和字体实在难以入睡。  博主用的是source insight3.5,其他版本操作也类似。先看下最终效果:首先,打开软件,点击菜单栏中的options-》Document Options弹出如下窗口,点击图中红色箭头指向的按键Screen Fonts设置字体字体选择C

2020-12-03 22:02:52 10814 1

原创 LeetCode 剑指 Offer 13. 机器人的运动范围(广搜和递推,C++)

剑指 Offer 13. 机器人的运动范围题目链接这道题可以简化一下,只剩下从(0,0)开始向下和向右走。二维图扫描可以考虑用广搜或深搜。这里给出广搜以及由广搜的思想引起的另一种方法。C++:class Solution {public: static int get(int x) { int sum = 0; while(x) { sum +=x%10; x = x/10;

2020-12-02 20:36:09 207 2

原创 LeetCode 剑指 Offer 12. 矩阵中的路径(深度优先搜索做二维平面扫描)

题目链接C++:class Solution {public: vector<vector<int>> direc; vector<vector<bool>> visited; vector<vector<char>> board; string word; int n, m, wlen; bool DFS(int i, int j, int start) {

2020-12-01 21:08:38 198

原创 LeetCode 剑指 Offer 11. 旋转数组的最小数字(二分法,C++)

题目链接C++:class Solution {public: int minArray(vector<int>& numbers) { int left = 0, right = numbers.size()-1; int mid = 0; while(left < right) { mid = left+(right-left)/2;

2020-11-30 23:05:52 193

原创 LeetCode 剑指 Offer 09. 用两个栈实现队列(C++)

剑指 Offer 09. 用两个栈实现队列题目链接a,b两个栈实现队列,a栈负责入队,b栈负责出队,做这道题相当于把两个栈的尾部相连接,为了避免频繁的入栈出栈,等出队的栈为空时,再把a栈中的数据倒进b。具体实现如下:class CQueue {public: stack<int> s1, s2; CQueue() { while (!s1.empty()) { s1.pop(); } while

2020-11-29 17:44:28 243

原创 LeetCode 剑指 Offer 07. 重建二叉树(不递归不知道C++传vector多么浪费时间)

剑指 Offer 07. 重建二叉树题目链接前序遍历:根节点->左子树->右子树中序遍历:左子树->根节点->右子树前序遍历的第一个节点是根节点,然后根据根节点在中序遍历数组中的位置,该位置左边是左子树的节点数量,该位置右边是右子树的节点数量。C++:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tr

2020-11-28 23:34:47 258 1

原创 LeetCode 99. 恢复二叉搜索树(深度优先搜索,C++)

99. 恢复二叉搜索树题目链接由于二叉搜索树中序遍历是一个递增且有序,因此可以根据这个特性确定两个错误节点。C++:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} *

2020-11-27 22:50:04 259

原创 LeetCode 剑指 Offer 04. 二维数组中的查找(二叉搜索树,C++和python)

剑指 Offer 04. 二维数组中的查找题目链接从右上角观察数组,发现数组和二叉搜索树类似。因此可以这么做,右上角的值和target比较,如果大于target,行加1,如果小于target,列减1。C++:class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { int width = matrix.size();

2020-11-26 22:13:52 233

原创 LeetCode 22. 括号生成(回溯和动态规划两种方法,C++,python)

22. 括号生成题目链接看到组合两个字,想到组合题常用方法回溯。C++:class Solution {public: vector<string> generateParenthesis(int n) { if(n==0) return {}; if(n ==1) return {"()"}; vector<string> result; traceback(result,{},n,0,0,0);

2020-11-25 22:31:35 470 2

原创 LeetCode 21. 合并两个有序链表(双指针,C++和python)

21. 合并两个有序链表题目链接这道题属于简单题,但是容易想复杂,实际上类似双指针。如果l1.val<l2.val时,答案添加l1如果l1.val>l2.val时,答案添加l2C++循环:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}

2020-11-24 23:01:47 226

原创 LeetCode 16. 最接近的三数之和(排序后双指针, C++和python)

16. 最接近的三数之和题目链接这道题和三数之和类似,排序后,用两个指针向中间逼近,如果大于结果就second-1,如果小于first-1。C++:class Solution {public: int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(), nums.end()); int n = nums.size(); int ans

2020-11-23 21:50:47 234 1

原创 LeetCode 19. 删除链表的倒数第N个节点(双指针,C++和python)

19. 删除链表的倒数第N个节点题目链接链表倒数第N个节点是经典双指针题目,让两个指针保持n个间距,然后同步向后移动,当后面的指针会指向空时,此时前面的指针刚好在n位置。C++:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode

2020-11-23 19:44:18 210

原创 LeetCode 11. 盛最多水的容器(双指针,C++和python)

11. 盛最多水的容器题目链接这道题暴力求解时间复杂度为O(N2), 提交会超时。实际上如果做题熟练看到此题需要数组中的两个值,可以很快想到用双指针,双指针是此题目前的最优解法。C++:class Solution {public: int maxArea(vector<int>& height) { int max = 0; int left = 0, right = height.size()-1; while(

2020-11-23 19:11:24 240

原创 LeetCode 剑指 Offer 24. 反转链表(两种写法)

剑指 Offer 24. 反转链表题目链接方法一:翻转当前节点的后一个节点指向/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(Lis

2020-11-22 20:02:39 977 8

原创 LeetCode 14. 最长公共前缀(横向扫描,C++和python)

14. 最长公共前缀题目链接这道题点击去之后发现是两年前刷的了,好像是我刷的第一道力扣题,试了下自己现在写的代码比以前好多了,思路也更加清晰了。C++:class Solution {public: string longestCommonPrefix(vector<string>& strs) { if(strs.size() == 0) return ""; string ans; for(int j = 0; j

2020-11-22 15:40:01 233

原创 LeetCode 12. 整数转罗马数字(贪心, C++和python)

12. 整数转罗马数字题目链接这道题力扣题解上面给出了很多解法,贪心是目前逻辑最简单且效率高的。先把最大值1000替换,替换完成再替换900,以此类推……C++:class Solution {public: string intToRoman(int num) { vector<int> key = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; vector<stri

2020-11-22 14:22:17 235 2

原创 LeetCode 剑指 Offer 03. 数组中重复的数字(使value == index,python版本)

剑指 Offer 03. 数组中重复的数字题目链接这道题看到重复两个字一半想到用哈希,等等,0~n-1?那如果不存在重复元素的且有序的话则index==value,因此可以交换value和index,让其归位(value == index),如果拿到一个value(这个值的index不等于value),发现value下标对应的位置已经归位,则这个value重复。如下动图所示:*注:博主用ppt制作python代码如下:class Solution: def findRepeatNum

2020-11-21 22:25:36 183

原创 LeetCode 9. 回文数( 翻转一半比较相等,python版本)

9. 回文数题目链接题目要求不转为字符串,因此可以翻转一半数字和其对比,力扣官方讲解已经通俗易懂了,我不再多说什么:官方题解但是官方没有python版本,这里给出python版本:class Solution: def isPalindrome(self, x: int) -> bool: if x < 0 or x%10 == 0 and x != 0: return False #处理特殊数据 temp = 0

2020-11-21 20:46:40 219

原创 LeetCode 剑指 Offer 06. 从尾到头打印链表(递归和栈,C++和python)

剑指 Offer 06. 从尾到头打印链表题目链接这道题看到逆序打印,可以很快想到用递归,递归使用系统内存中的栈,不断调用函数速度有点慢,自己用栈保存是更快的。python版本:# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def rec

2020-11-21 19:40:46 208

原创 LeetCode 6.Z 字形变换(简单模拟和按列访问,C++和python)

6. Z 字形变换题目链接这道题直接简单模拟,先放进一个二维数组然后按行访问数组即可。官方题解:用的按行排序和按行访问由于官方没有python版本,我这里给出官方题解的python版本 简单模拟方法:class Solution {public: string convert(string s, int numRows) { if(numRows == 1) return s; vector<vector<char>&g

2020-11-20 23:47:07 198

原创 LeetCode 4. 寻找两个正序数组的中位数(优先队列和二分,C++)

4. 寻找两个正序数组的中位数(优先队列解法)题目链接这道题要求了时间复杂度为O(log(m+n)),根据对数时间复杂度,可以想到用二分法。由于我没能用二分法做出,这里引用力扣官方给的算法讲解力扣官方题解看到官方题解中通过二分法找Kth元素,想到topK问题可以用优先队列来做,试了下也可以通过。class Solution {public: double findMedianSortedArrays(vector<int>& nums1, vector<i

2020-11-19 22:07:45 267

原创 LeetCode 3. 无重复字符的最长子串(哈希表与滑动窗口,C++和python)

3. 无重复字符的最长子串题目链接这道题看到无重复最先想到哈希表,能提交过但是时间有点多。注意到只求出长度就可以,可以采用滑动窗口(也可以理解为双指针的一种妙用)。C++哈希表:class Solution {public: int lengthOfLongestSubstring(string s) { unordered_set<char> set; int left = 0; int max_len = 0;

2020-11-18 22:22:29 230

原创 LeetCode 2. 两数相加(c++和python)

2. 两数相加题目链接这道题可以采用递归也可以采用循环的方式解答由于有进位,使用一个变量记录当链表到达尽头,另一条的链表不一定到达尽头,进位也未必为0,这里采用三目运算符进行处理。C++版本:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} *

2020-11-18 21:32:59 254

原创 LeetCode 1. 两数之和(值和目录交换,目前不超时的C++和python解法)

1.两数之和题目链接方法一:直接暴力求解和暴力找差值(力扣数据已经增加,目前已经不能通过)方法二:哈希map//直接暴力求解容易想到,但是查找差值会更快一些。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.size(); for (int i = 0; i < n; ++i) {

2020-11-16 23:33:59 159 1

Sourceinsight配色方案

Sourceinsight超好看护眼的配色方案文件,如果想自己设置,可以参考https://editor.csdn.net/md?not_checkout=1&articleId=110563035

2020-12-03

第八届蓝桥杯省赛单片机模拟试题-程序设计部分.pdf

基于单片机的电子钟程序设计与调试 一、 基本要求 使用 CT107D 单片机竞赛板, 完成“电子钟” 功能的程序设计与调试。

2020-11-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除