自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 LeetCode-二维数组中的查找

二维数组中的查找二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路注意题目说明从左到右和从上到下递增,所以可以用两个索引(i,j)控制行列数当 matrix[i][j] > target,说明该行都大于target,则可以排除该行,往上重新开始当 matrix[i][j] < target,说明该列都小于target,则可以

2021-11-12 18:18:57 630

原创 LeetCode-从上到下打印二叉树 III

从上到下打印二叉树 III从上到下打印二叉树 III请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。思路总体和层次遍历一致,只是多了个判断而已利用 双端队列 实现,Python——collections中的deque,C++——STL中的deque偶数层:需要从左到右打印奇数层:需要从右到左打印辨别偶奇数层,可添加一个标志flag来辨别。flag=True为偶数,false为奇数,奇数时

2021-11-10 20:57:25 135

原创 LeetCode-上到下打印出二叉树

上到下打印出二叉树上到下打印出二叉树从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。思路说白了就是层次遍历借助队列 先进先出 的特点,遍历二叉树,一个个入队collectiondef levelOrder(self, root): res = [] q = collection.deque() if root: #若root不为空,则往队列添加结点root q.append(root)

2021-11-08 21:50:42 116

原创 LeetCode-移除元素

移除元素移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]思路双指针,一个指针 fast 专门来遍历,另一个指针 slow 是存放元素的下标当 fast 遍历到与val 不同时,将num [fast] 给到 num [slow],slo

2021-11-04 15:17:33 707

原创 LeetCode-加一

加一加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123思路情况1:数字0-8情况2:数字9、99、999从后往前遍历当是 情况1 时,直接 +1 即可,一循环直到找到无进位直接返回当是 情况2 时,+1 会进位,则该位数为0,进位为1,需要自行

2021-11-03 17:41:52 81

原创 LeetCode-第一个只出现一次的字符

第一个只出现一次的字符第一个只出现一次的字符在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例 1:输入:s = “abaccdeff”输出:‘b’思路利用 哈希表 ,Python使用字典 key-value遍历两次第一次遍历,填充字典,默认value填充False,key是字符,遍历时发现有重复字符则将其value改为True第二次遍历,查找只出现一次的字符,即查找第一个value为False的字符def firstUniqChar(

2021-11-02 14:32:17 189

原创 0~n-1中缺失的数字

0~n-1中缺失的数字0~n-1缺失的数字一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。思路注意,题干说明 递增排序数组,即下标0对应数值0,下标1对应数值1……所以考虑特殊情况即可def missingNumber(self, nums): if nums[0] == 1: return 0 for i in range

2021-11-02 09:59:36 84

原创 LeetCode-左旋转字符串

左旋转字符串左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = “abcdefg”, k = 2输出: “cdefgab”思路方法1.切片,利用字符串 str = [ i:j:k]方法2.字符串追加,str.join()方法3.反转列表list内置方法——list.reverse(),返回值None

2021-11-01 15:03:03 117

原创 LeetCode-替换空格

替换空格替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”思路利用 join() 函数 连接字符串字符串利用join() 连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串列表利用extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加,+=也可以实现相同效果 append()是向列表尾部追加一个新

2021-10-29 17:55:30 53

原创 LeetCode-反转链表

反转链表反转链表定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路递归做法,得到新链表def reverseList(self, head): # 若链表为空 或 链表下个节点为空 if not head or head.next==None : return

2021-10-29 10:12:20 65

原创 LeetCode-包含min函数的栈

包含min函数的栈包含min函数的栈思路创建多一个新栈(存放最小元素的栈)来辅助。因为要返回最小元素,所以插入时多考虑情况情况1.最小栈为空,元素直接插入最小栈情况2.插入元素 < 最小栈栈顶,元素直接入最小栈情况3.插入元素 >= 最小栈栈顶,最小元素再次入最小栈出栈时,需要两个栈同时出栈,保持一致性def __init__(self): self.myMin = [] self.data = [] """

2021-10-28 18:17:06 94

原创 LeetCode-两个栈实现队列

两个栈实现队列两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )思路队列:先进先出栈:先进后出两个栈,一个用来存放数据,一个用来辅助队列尾部插入:先将data栈中数据移到helper栈中,再将插入的数值入data栈,最后将helper数据搬回data,从而实现先进后出的原则队列头部删除:因data栈已是队

2021-10-27 20:15:37 2614

原创 LeetCode-最长公共前缀

最长公共前缀最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。思路通过字符串比较方法,字符串的比较是使用的字典序,而不是长度比如 a,aa,aab,aac, aaa 最大字符串是aac,最小字符串是a,那么最大最小字符串的公共前缀就是原字符串的公共前缀再如 aaa,aab,aac,abc,b 最大字符串是abc,最小字符串是b,那么公共前缀是“”def longestCommonPrefix(self, strs):

2021-10-27 10:42:43 1681

原创 LeetCode-有效的括号

有效的括号有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。思路利用 栈 的特点,先进后出遍历字符串,遇到左括号就入栈右括号,若与栈元素相同则出栈第一种情况:栈为空,说明有多余括号第二种情况:栈的元素和字符串元素不匹配第三种情况:遍历完字符串后栈不为空,说明有左括号没有右括号可匹配Python中没有栈,可用List代替。def isVali

2021-10-26 20:56:36 103

原创 LeetCode-回文数

力扣-回文数链接:回文数给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。思路1通过原数字取出每位数,实现反转需注意,数字位数(长度)可以是偶数个或奇数个偶数个:它对折过来应该是相等的;即reverNum=x奇数个:那么它对折过来后,有一个的长度需要去掉一位数(除以 10 并取整)即reverNum/10 == xdef isPalindrome

2021-10-26 18:11:17 172

原创 Python+selenium(1)

这里我使用chrome浏览器和pycharm,需下载对应浏览器版本chromedriver.exe配合使用(复制到python安装目录下即可)。其他环境默认已搭建哈1. 首先肯定先打开浏览器。from selenium import webdriverdriver = webdriver.Chrome() #初始化driver对象2. 再打开网页url = "https://www.baidu.com"driver.maximize_window() #最大化窗口dri

2021-06-05 10:45:12 47

原创 set、multiset、unordered_set

**std::set:**元素不重复,默认有 从小到大的排序(底层红黑树)**std::multiset:**存储的元素可重复,默认有从小到大的排序(底层红黑树)**std::unordered_set:**容器内的元素无序排列,基于值进行获取单个元素速度非常快(哈希表)若想读写效率是最高的,并不需要对数据进行排序,而且还不要让数据重复,使用unordered_set例题:https://leetcode-cn.com/problems/intersection-of-two-arrays/给定两

2020-11-02 12:46:44 155

原创 Keep,Note.1

1、获取环境变量:char* getenv(const char* name) 成功就返回环境变量的值,失败返回NULL (include <stdlib.h>)include <stdio.h>#include <stdlib.h>int main(){ printf("homepath is [%s]\n",geienv("home")); return 0;}2、进程创建一个新的进程 pid_t fork(void); 返回值:失败

2020-10-28 23:21:24 101

空空如也

空空如也

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

TA关注的人

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