大逆不道,从天界偷下来的算法修仙秘籍竟然传到你手上~~(结尾有彩蛋)
大逆不道,从天界偷下来的算法修仙秘籍竟然传到你手上~~(结尾有彩蛋)这有可能是你见过最离谱的标题
这有可能是你没见过的技术文章模式
我不知道我的选择是否正确,但是我的想法就是:
不再让技术冷冰冰,让所有人学习中获得快乐!
序言
这是一个奇妙的世界,
本来人们在这个世界上相处融洽,大家互相包容,没有任何制度……
人们在这个世界上感受到了一丝丝的温馨幸福,
但是反而到来的是制度的缺失导致的无畏纷争和内心世界极大的空虚~~
但是突然的一天,这一切都她被改变了,
她,来自天界,一个身穿天青色长裙的仙女,
拥有一种神秘的功法能让本来复杂性的工作大大缩短时间;
而且之前常用的大型机器设备,也通过她的改造竟然用一台小而精妙的工具就能实现,大大减少了空间;
有些人偷看女子施法,竟然发现这种功法就是在一个只有26个按键机器上行云流水的反复敲打,
这是因为如此惊人的工作效率,有些志气风发的少年决定向她学习这种功法,
但是当仙女见到这些少年,都是摇摇头,说着:不具备这种天赋。
当到最后一个少年,仙女还是摇了摇头说:“不行!”
最后的他竟然没有离去,冒着“大不敬”出口就说:“难道你说不行就不行,我们的人生由 ...
一个特殊的母亲节
一个特殊的母亲节
偷走我妈的青春的不是时间啊,而是我啊!
提前的准备2022/5/8这是一个特殊的日子,因为最近在做任务清单有日历能才注意到马上母亲节了,于是早早的做了标记
还在拼多多上买了很多东西(一些老妈喜欢吃的青岛大虾和麻辣小龙虾,还有一些火锅料什么的,还买了一束鲜花和一个插花瓶)
作为一个平时和父母比较羞涩地大男孩,以为这就比较浪漫了~还符合老妈的心意
于是下单之后就没怎莫管,以为快递就会直接寄到家里,前一天(5/7)才看到因为辽宁疫情的原因,鲜花和海产品都发不了了
只剩下一个插花瓶和一些火锅底料(海底捞清油老妈比较喜欢吃)
所以就想着明天一定要表示一下~
节日当日想着起来就给老妈打个视频,今天 7:30 起床准备跑步,到外面就和母亲打电话(室友在睡觉不方便在寝室)
先是祝老妈节日快乐快乐,还聊了一些家常~~
之后给老爸也打了一个因为提醒老爸也打一个电话给奶奶~~给老妈做点好吃的
(其实自己也知道父母真的很舍不得花钱买什么吃的,害,中国的家庭其实都一样父母为孩子奋斗到最后一刻)
打完电话,之后和一个朋友聊天,无意中聊到了给老妈发一个红包,本以 ...
leecode206(反转链表)
每日一题——leecode206(反转链表)
题意 难度:简单
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
12输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]
示例 2:
12输入:head = [1,2]输出:[2,1]
示例 3:
12输入:head = []输出:[]
思路代码代码实现(方法一递归):
视频讲解:我愿意称之为最清晰的讲解(推荐2倍数使用)
123456789def reverseList(self, head: ListNode) -> ListNode: if head is None or head.next is None: return head p = self.reverseList(head.next) head.next.next = head head.next = None return p
代码实现(方法二迭代解法):
视频讲解:https://leetcode-cn.com/problems/reve ...
leecode59( 螺旋矩阵 II)
每日一题——leecode59( 螺旋矩阵 II)
题意 难度:中等 (看清楚不是简单,别再说老子水文啊~)
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1:
12输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]
示例 2:
12输入:n = 1输出:[[1]]
思路一道模拟题,难度中等,面试出现频率极高。
模拟题就是本身不涉及算法,就是单纯根据题目所描述的模拟整个过程从而得到最后的结果。
这类题天然的考察你的码力,即对编程语言的掌握能力,一不小心就会各种 bug。
做这类模拟题的要点就是多在纸上画一下,别空想把自己想晕了,代码写干净些,方面后面 debug…
这道题是按“顺时针”顺序对矩阵进行填充,方向无非就是“上下左右”,顺时针的话,填充就是按照“上->右->下->左”,写具体点就是:
上:从左到右填充。
右:从上到下填充。
下:从右到左填充。
左:从下到上填充。
同时找好每次填充的边界,比如最开始的时候最左侧边界 left ...
PAT乙级1002-写出这个数
每日一题——PAT乙级1002-写出这个数
写在前面 这个题挺有意思,题目真的很简单,但是对于Python考察的是各种type怎么计算。因为这个老子看来半天代码,感觉没错啊,但是吧代码放到pycharm上一看报错就知道怎么回事了,那个字符之间不可以计算。虽然浪费了我好长一段时间,但是也对数据类型计算也有了更深的了解
问章末尾有详细的类型的反复转化。
题意如果想听讲解的(自己录的,各位勿喷):PAT (Basic Level) Practice (中文)—乙级—Python-1002 写出这个数 (20 分)_哔哩哔哩_bilibili
1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。
输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10100。
输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
输入样例:11234567890987654321123456789
输出样例:1yi san wu
思路讲解#题目大意: ...
leecode209( 长度最小的子数组)
每日一题——leecode209( 长度最小的子数组)
题意 难度:中等
给定一个含有 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
思考首先你要了解一下float(‘inf’)正负无穷:float(“inf”)是什么?_狂奔的菜鸡的博客-CSDN博客_float inf一般就用在数组或者字符串上,我们先从字面上来认识一下滑动窗口:滑动:窗口可以按照一定的方向移动。 窗口:窗口大小可以固定,也可以不固定,此时可以向外或者向内,扩容或者缩小 ...
LeetCode977(有序数组的平方)
每日一题——LeetCode977(有序数组的平方)
题意 难度:简单
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
示例 1:
1234输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]
示例 2:
12输入:nums = [-7,-3,2,3,11]输出:[4,9,9,49,121]
方法一:直接排序
思路与算法元组中数平方后直接排序,因为python中有sorted()函数直接排序。所以python学得好,代码打得少!
代码
123class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: return sorted(num * num for num in nums)
方法二:双指针
通过题目件其实我们可以得出,平方以后的最大值肯定出现在两侧,不是左边就是右边(负 ...
PAT乙级1003-我要通过
PAT乙级1003-我要通过
题意 range(10)是指0,1,2,3,4,5,6,7,8,9
PAT (Basic Level) Practice (中文)
1003 我要通过! (20 分)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。
得到“答案正确”的条件是:
字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。
现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。
输入格式:每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (≤10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。
输出格式:每 ...
LeetCode26(删除有序数组中的重复项)
每日一题——LeetCode26(删除有序数组中的重复项)
题意 给你一个 升序排列 的数组 nums ,请你* 原地* 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
解题思路首先要知道len()是数组的个数,而nums[1]表示从第一位起(第一位初始为0)思路来源:https://www.bilibili.com/video/BV1d3411y75s/
首先想到主要情况,因为是自增数列
想到用两个小箭头定数字位数的方式
当j和j-1数值一样(第0位和第一位一样),j就要下移一位(把不一样的的值赋给第二位)。但是j要小于元组长度。
两种特殊情况:
当数组为空的情况下
当数组的长度为一的情况下
代码实现12345678910111213141516171819 ### 代码```python3class Solution: def removeDuplicates(self, nums: List[int]) -> int: if not nums:#当数组为空的情况下 ...
LeetCode122(买卖股票最佳时机II)
每日一题——LeetCode122(买卖股票最佳时机II)
题意range(1,5)表示1,2,3,4即[1,5)
难度:中等
给定一个数组 prices ,其中 prices[i] 表示股票第 i 天的价格。
在每一天,你可能会决定购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以购买它,然后在 同一天 出售。 返回 你能获得的 最大 利润 。
思路这里采用贪心算法:
这里等同于每天买卖股票,实现最大利润。
只需要我们每天收集整理正利润即可,收集正利润的区间就是股票买卖点区间,而我们只需要关注最终利润,不需要记录区间。那么只收集正利润是贪心算法所“贪”的地方。
局部最优:收集每天正利润
全局最优:求最大利润
1234567def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in range(1, len(prices)): tmp = prices[i] - prices[i - 1] if tmp > 0: ...