自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(268)
  • 资源 (1)
  • 收藏
  • 关注

原创 剑指 Offer 48. 最长不含重复字符的子字符串 (滑动窗口)

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。参考博客:https://www.cnblogs.com/kongzimengzixiaozhuzi/p/13308702.htmlclass Solution: def ..

2020-12-12 00:36:50 184

原创 剑指 Offer 42. 连续子数组的最大和(动态规划)

连续子数组的最大和输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。参考题解:https://leetcode-cn.com/problems/lian-xu-zi-shu-zu-de-zui-da-he-lcof/solution/mian-shi-ti-42-lian-x

2020-12-12 00:32:12 156

原创 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例: 现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22]]给定 target=5,返回true。给定target=20,返回false。class Solution:...

2020-08-17 23:43:29 155

原创 剑指 Offer 22. 链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解法:第一种::利用栈的特性,首先遍历一次链表,插入栈中,然后pop栈,pop第k个节点就是我们想要的了。第二种:利用双指针,具体流程

2020-08-04 19:55:20 107

原创 剑指 Offer 18. 删除链表的节点

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例一:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例二:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为1的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -&g...

2020-08-04 00:09:29 97

原创 剑指offer58 - II. 左旋转字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入: s = "abcdefg", k = 2输出: "cdefgab"class Solution: def reverseLeftWords(self, s: str, n: int) ->str: res = []

2020-07-21 00:00:50 80

原创 LeetCode 20: 有效的括号

https://leetcode-cn.com/problems/valid-parentheses/solution/you-xiao-de-gua-hao-by-leetcode/class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ # The stack to keep track of opening

2020-07-18 00:49:15 100

原创 LeetCode 9: 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。class Solution: def isPalindrome(self, x: int) -> bool: intValue = x string = str(in.

2020-07-14 23:21:19 82

原创 LeetCode 1: . 两数之和

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]nums = [2, 7, 11, 15]target = 9def search(nums: [int], target...

2020-07-14 16:04:54 92

原创 AQY:查找二叉树中值为k的节点

class TreeNode(): def __init__(self, x: int): self.val = x; self.left = None self.right = Noneclass Tree(): def __init__(self, k: int): self.k = k self.searchedNode = None # DFS 深度遍历 - 先序遍历 def s.

2020-07-01 23:41:51 377

原创 剑指 Offer 68 II:二叉树的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树:root =[3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 ...

2020-06-24 23:54:36 111

原创 剑指 Offer 25:合并两个排序的链表

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4// 时间度底的写法 优雅class LinkNode(): def __init__(self, value, next = None): self.value = value self.next = nextclass Solution():

2020-06-21 23:32:01 96

原创 LeetCode445: 两数相加 II

给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7class LinkNode(): def __init__(self, value, next = None):

2020-06-20 23:51:41 95

原创 剑指offer:反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLclass LinkNode(): def __init__(self): self.value = None self.next = Noneclass Solution(): def creatLink(se

2020-06-17 23:52:23 92

原创 剑指Offer42 连续子数组的最大和 (分治算法)

输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。第一种:暴力解法采用for循环遍历,时间复杂度O(n^3)第二种:分治算法时间复杂度O(nlog(n))class Solution(): def searchMaxValue(sel...

2020-06-09 20:19:30 185

原创 剑指offer I:从上到下打印二叉树

class Solution: def levelOrder(self, root: TreeNode) -> List[int]: queue = [] // 使用list模拟队列 result = [] if root == None: return result queue.append...

2020-04-13 23:57:23 70

原创 安装PIL一直失败,切换源解决办法

今天在用Python处理图片过程中,需要安装PIL,但一致遇到time out超时等error信息,导致没办法下载安装,最终发现需要切换为国内的源,下面清华源:pip install -ihttps://pypi.tuna.tsinghua.edu.cn/simplePILhttps://pypi.tuna.tsinghua.edu.cn/simple 清华源这样就可以成功下载安...

2020-03-31 19:33:46 1354

原创 LeetCode146:LRU算法

运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 write。获取数据 get(key) - 如果key存在于缓存中,则获取key的值(总是正数),否则返回 -1。写入数据 write(key, value) - 如果key不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从...

2020-03-17 23:56:23 135

原创 剑指Offer39:数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2哈希表解法:遍历列表,将数的出现次数保存在对应的哈希表中,当某个数出现的次数大于列表的一半时,则找到了。class Solution(object): def se...

2020-03-15 23:44:48 123

原创 LeetCode136:只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4class Solution(object): def searchFirstTimeNumbe...

2020-03-15 22:28:17 135

原创 LeetCode 20:有效的括号

给定一个只包含'(',')','[','],'{','}'的字符串,判断字符串是否有效。示例:输入:"()", true输入:"()[]{}", true输入:"(]", false输入:"([)]", false输入:"([])", trueNSString *string = @"{()}";NSMutableArray *array = [NSMutableArray a...

2020-03-03 17:29:36 67

原创 算法题:输入任意十进制正整数,将此十进制数转为二进制,求二进制中1的个数。

int a = 10; // 10模拟任意整数 NSMutableArray *array = [NSMutableArray array]; while (a != 1) { int remainder = a % 2; [array addObject:@(remainder)]; a = a / 2; } ...

2020-02-27 18:09:10 2281

原创 lipo指令 及 ar -x

lipo指令是Mac上的一款处理Binaries的工具,大致哪些用法在终端输入lipo查看:-archs -create [-arch_blank <arch_type>] -detailed_info -extract <arch_type> [-extract <arch_type> ...] -extract_fami...

2020-01-09 20:12:58 1486

原创 查找二叉树的节点(某一值的节点)

#include <iostream>#include <stdio.h>#include <stdlib.h>struct BinaryTreeNode{ char value; struct BinaryTreeNode *lchild, *rchild;};// 输入值依次是:a、b、#、#、c、#、#struct Bin...

2020-01-01 23:32:54 1406

原创 剑指offer48 最长不含重复字符的子字符串

题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度,假设字符串中只包’a’~’z’字符。例如,在字符串’arabcacfr’中,最长的不含重复字符的子字符串是’acfr’,长度是4摘自力扣一个比较好的解决方案:https://leetcode-cn.com/problems/longest-substring-without-repeating-characte...

2019-11-30 23:43:09 104

原创 剑指offer49 丑数

我们之把只包含因子2、3和5的数称作丑数。例如,6和8是丑数,但14不是,因为它包含因子7。习惯上我们把1当作第一个丑数。求任意数是否是丑数。(稍微对原题题目做了变种)题解:所以一个数m是另一个数n的因子,是指n能被m整除,也就是n%m=0,根据丑数的定义,丑数只能被2、3和5整除。也就是说,如果一个数能被2整除,就连续除以2,如果能被3整除,就连续除以3,如果能被5整除,就连续除以5,如果最...

2019-11-27 00:18:09 86

原创 剑指offer50 第一个只出现一次的字符

在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)解题思路:第一:利用python特性string.count(str)返回 str 在 string 里面出现的次数,利用python此特性可以几行代码搞定class Solution: def FirstNo...

2019-11-19 19:44:23 107

原创 剑指offer52 两个链表的第一个公共节点

输入两个链表, 找出它们的第一个公共节点。解体思路公共结点的意思是相同的点,不仅值相同,next也相同,包括公共结点后面的节点也是完全相同,所以可以把两条链表看成Y字型了,某一个结点后面的点全部一样。例如3->2->1和4->2->1,2就是他们的第一个公共结点。我们先把全部结点分别压入两个栈,利用栈的特性后进先出特性,同时pop出栈,一开始两边的元素肯定是相同...

2019-10-31 00:50:19 92

原创 剑指offer58 翻转字符串

输入字符串“the sky is blue”,输出“blue is sky the”string = 'the sky is blue'class Solution(object): def reverseWords(self, s): s = s.strip() res = "" i, j = len(s) - 1, len(s...

2019-10-28 00:16:17 96

原创 剑指offer57 和为s的数字

题干:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一堆即可。例如:输入【1,2,4,7,11,15】和数字15,由于4+11=15,因此输出4和11解体思路:最简单暴力的解决办法是两个for循环,先在数组中固定一个数字,再一次判断数组中其余的n-1个数字和它的和是不是等于s,不过是件复杂度是O(n^2),更优的解法是...

2019-10-26 00:04:02 87

原创 剑指offer56 数组中数字出现的次数

一组数据[1, 2, 1, 3, 2, 5],只有两个数是不重复的,其余数都出现了两次,求不重复的两个值扩展知识:异或运算符”∧”,它的规则是若参加运算的两个二进位同号,则结果为0(假)异号则为1(真)即 0∧0=0,0∧1=1, 1^0=1,1∧1=0解体思路:如果其中只有一个数字不重复,很好解决,直接来一轮异或,得到的值就是不重复的值先将数组所有元素进行一次异或运算,可以...

2019-10-24 00:53:05 82

原创 剑指offer55 二叉树的深度 (python实现)

class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Tree: def TreeDepth(self, pRoot): if pRoot is None: ...

2019-10-23 00:44:56 158

原创 剑指offer54 二叉搜索树的第k大节点 (python实现)

题目:给定一棵二叉搜索树,请给出第k大节点。例如:二叉搜索树已经按照节点数值大小顺序排列了k = 5 # 寻找第k大的数 暂时k=3count = 0class BinaryTreeNode(object): def __init__(self, value=None, left=None, right=None): self = self ...

2019-10-22 01:30:57 237

原创 剑指 Offer 53 - I. 在排序数组中查找数字 I (python实现)

用常规的二分法去查找,实践复杂度O(N),如果用二分法配合直接找第一个K和最后一个K,减少时间复杂度为 log(N)k = 7array = [1, 2, 3, 4, 5, 6, 7]length =len(array)mid = len(array) // 2count = 0def getStarttK(left, right): if left > right...

2019-10-20 02:45:01 158

原创 python实现简单二分法

k = 7array = [1,2,3,4,5,6,7]mid = len(array) // 2count = 0def searchValue(left, right): global mid global count global k count = count + 1 mid = (left + right) // 2 print(...

2019-10-18 01:51:32 162

原创 Python知识点

1.使用os.path.realpath(__file__)获取文件所在目录 路径+文件名2.os.path.abspath('.'), 获取当前文件所在路径 (当前文件的上一级路径)3..os.path.dirname(path),返回path的目录(os.path讲解https://www.cnblogs.com/hanmk/p/9857354.html)4.commands模...

2019-10-10 00:13:10 152

原创 Terminal实用功能技巧

如果喜欢系统自带终端可看如下内容,当然可以选择第三方的zsh之类的,省的配置,不过我还是喜欢用系统的1.终端左侧显示git分支名/路径功能在个人目录(~)bash_profile文件中添加如下shell脚本,即可实现终端左侧显示当前路径下的分支以及路径# 命令行提示符function git_branch { branch="`git branch 2>/dev/n...

2019-07-17 16:27:05 729

原创 CSS&HTML实用知识点

一CSS:1.float浮动元素产生了浮动流所有产生了浮动流的元素,块级元素看不到他们产生了bfc的元素和文本类属性(inline)的元素以及文本都能看到浮动元素2.BFC (block format context)Block fomatting context=block-level box+Formatting ContexBox:即盒子模型Format...

2019-07-08 22:20:06 114

原创 推荐实用功能网址&博客地址

一、json格式化网址,支持大屏展示,看起来非常爽,以及默认将unicode编码过的数据自动解码展示。http://json.parser.online.fr/

2019-07-05 18:42:49 186

原创 CSS样式表 以及选择器优先级

CSS样式表包含:外部样式表、内部样式表(head元素中)、内联样式表多重样式表的优先级:内联样式 inline style> 内部样式表 internal style sheet > 外部样式表 External style sheet > 浏览器默认样式下面是讲解选择器优先级的内容,关于权重解释的不错因此摘抄过来 ,摘自菜鸟教程优先级是浏览器是通过判断哪些属...

2019-07-05 14:22:05 643

CoreData简单工具类

针对CoreData的一个简单封装,可实现基本的插入,删除,查询,更新的功能。

2016-01-20

空空如也

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

TA关注的人

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