自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Black Mamba的博客

Done is better than perfect.

  • 博客(124)
  • 收藏
  • 关注

原创 argparse错误——error: unrecognized arguments

问题:原因:解决方法:将换行格式更换为Unix下的LF。

2020-11-22 16:28:36 7819

原创 浏览器访问不了网页,但是可以ping通

原因:昨晚电脑强制关机,VPN未正常关闭。解决方法:把VPN打开,然后关闭代理模式,一切就正常了。

2020-10-02 11:18:14 1003 1

原创 2020秋招网易云音乐iOS 搜狐视频iOS

项目:处理URL的函数读研的框架mysql事务OC weak很大的数据查询是否是特定的数C++空的类里面会有什么函数读研期间最大的收获:

2020-08-16 00:30:26 304

原创 2020秋招猫眼iOS

一面:为什么从图像转到开发?不足:“图像大多数是调参”不妥改进:图像的一部分网络结构的设计和调参,带给自己的成就感不如开发大,开发可以接触到很多计算机的基础知识,我的一个想法是在工作之余,不断温习这些基础课,探究计算机的历史。项目介绍不足:语言凝练,提前多练习1.头和实现分离 -> shopkit的机制介绍deeplinking是做什么的:网页链接是无法打开原生应用的,如果一个用户访问你的网页中的某一个资源,他的手机上面也已经安装了你的应用,那么,我们要如何让系统自动的打.

2020-08-07 00:43:32 162

原创 leetcode[438] 找到字符串中所有字母异位词

题目:给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。思路:类似最小覆盖子串,利用双指针+滑动窗口的思想,区别是这里内层while循环条件(match数等于needs大小)及判断是结果索引的条件(right-left等于p的大小)。代码:class Solution {public: vector<int&...

2020-04-21 19:11:59 146

原创 leetcode[76] 最小覆盖子串

题目:给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。实例输入: S = "ADOBECODEBANC", T = "ABC"输出: "BANC"思路:巧妙利用两个指针,操作滑动窗口的范围。外层循环:当滑动窗口不包含T中字符时,右移right指针,使得当前滑动窗口包含T中的字符。循环结束条件:right指针指向s字符串范围内层循环:...

2020-04-21 17:58:50 156

原创 剑指offer 面试题68 II 二叉树的最近公共祖先

问题:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”思路:第一步,找到根到两个节点的路径第二步,找到两个路径的最后一个公共节点代码:/** * Definition ...

2020-04-07 17:38:19 117

原创 leetcode[300] Longest Increasing Subsequence

题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。输入:整数数组输出:最长上升子序列的长度思路:动态规划代码:复杂度分析:时间复杂度O(n^2),空间复杂度O(n)。...

2020-04-04 21:58:49 102

原创 leetcode[375]Guess Number Higher or Lower II

问题:继[374]Guess Number Higher or Lower,升级版猜数游戏。猜错即付猜的数字的钱。输入:n输出:使得猜数玩家损失最大化的数主要思想:贪心最小化最大面临的损失(在worst情况下付出的money)比如n=3时,猜2即可最小化最大面临的损失。n=4时,猜1和3即可最小化最大面临的损失。n=5时,猜2和4即可最小化最大面临的损失。...

2020-04-04 20:44:16 83

原创 剑指offer 面试题63 股票的最大利润

问题:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?思路:保存最小值,将当前值与最小值做差,如果大于最大利润,则更新最大利润。遍历结束,得到最大利润。代码:class Solution {public: int maxProfit(vector<int>& prices) { int min=...

2020-04-04 18:37:58 223

原创 剑指offer 面试题62 圆圈中最后剩下的数字

问题:0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。思路1:环形链表模拟圆圈复杂度分析:时间复杂度为O(mn),空间复杂度为O(n).思路2:分析每次被删除的数字的规...

2020-04-04 18:21:24 93

原创 剑指offer 面试题61 扑克牌中的顺子

问题:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。思路1:排序把数组排序,统计数组中0的个数,统计排序之后的数组中相邻数字之间的空缺总数。如果空缺总数小于等于0的个数,则是顺子,否则不是。另外,如果有对子出现,则不是顺子。代码:cla...

2020-04-04 17:55:42 209 2

原创 剑指offer 面试题60 n个骰子的点数

问题:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。(1 <= n <= 11)思路1:递归将n个骰子分为1和n-1两堆,n-1又可以进行递归,递归结束条件最后只剩下1个。代码:class Solution {public: double total; void probabilityCore(int ...

2020-04-04 16:59:23 267

原创 剑指offer 面试题59 队列的最大值

问题1:滑动窗口的最大值给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。思路:利用deque存放滑动窗口中有可能成为最大值的索引值。从deque后面依次弹出比当前num[i]小的值,保证deque队首元素为当前窗口最大值索引,压入nums[i]。当当前窗口滑过窗口最大值索引时,弹出最大值索引。代码:class Solution {publi...

2020-03-30 21:50:44 810

原创 剑指offer 面试题58 翻转字符串

问题1:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。思路:翻转整个句子,然后翻转每个单词。代码:class Solution {public: string ReverseSentence(string str) { ...

2020-03-30 18:13:42 121

原创 leetcode[151] 翻转字符串里的单词

问题:给定一个字符串,逐个翻转字符串中的每个单词。思路:先局部,再整体。第一遍,一边去除掉多余的空格,一边局部翻转单词。第二遍,整个句子翻转一遍。代码:class Solution {public: string reverseWords(string& s) { int len=s.size(); int i=0,j=0;...

2020-03-30 17:28:17 84

原创 剑指offer 面试题57 和为s的数字

问题1:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。思路:两个指针,由于是排序数组,初始时分别指向头和尾。如果指针指向的两个数的和大于s,则j减一;小于s,i加一;等于s,则返回结果。循环结束条件i>=j。代码:class Solution {public: vector&lt...

2020-03-30 15:38:00 156

原创 剑指offer 面试题56 数组中数字出现的次数

问题1:数组中只出现一次的两个数字一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。2 <= nums <= 10000思路:异或首先,对数组的每个数字依次进行异或,得到异或后的结果value。然后,记value最右边第一位为1的位为i,依据第i位为1/0将数组分为两组。最后,在每个子数组中,依次进行异或,异或后的结果...

2020-03-29 00:12:01 170

原创 剑指offer 面试题55 二叉树的深度

问题:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。思路:递归树的深度为左子树的深度和右子树的深度的较大值+1.代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x...

2020-03-28 22:18:36 110

原创 剑指offer 面试题54 二叉搜索树的第K大节点

问题:给定一棵二叉搜索树,请找出其中第k大的节点。思路:中序遍历代码:/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { ...

2020-03-28 20:43:20 116

原创 剑指offer 面试题53 在排序数组中查找数字

问题1:统计一个数字在排序数组中出现的次数。输入:数组输出:次数思路:由于在排序数组中,可以使用二分查找。(注意加1减1细节。)代码:class Solution {public: int getFirst(vector<int>& nums, int target,int len,int start,int end) { ...

2020-03-28 16:24:43 101

原创 剑指offer 面试题52 两个链表的第一个公共节点

问题:输入两个链表,找出它们的第一个公共结点。输入:两个链表头指针输出:思路1:经过观察,两个链表在第一个公共节点汇合,如下图想从最后往前遍历,但由于是单向链表,所以借助栈。分别把两个链表放入栈中,两个链表的尾节点就位于两个栈的栈顶,接下来比较两个栈顶的节点是否相同,如果相同,则把栈顶弹出,比较新的栈顶,直到找到最后一个相同的节点。复杂度分析:时间复杂度为O(m+n),...

2020-03-26 23:18:08 219

原创 剑指offer 面试题51 数组中的逆序对

问题:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入:数组输出:逆序对总数思路:分治先把数组分成子数组,统计出子数组内部的逆序对数目,然后再统计出两个相邻子数组之间的逆序对数目。还需要对数组进行排序。基于归并排序写出以下...

2020-03-26 21:23:55 92

原创 剑指offer 面试题50 第一个只出现一次的字符

问题1:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).输入:字符串输出:第一个只出现一次的字符位置思路:创建一个数组,存放字符出现的次数代码:class Solution {public: int FirstNotRepeatingChar(str...

2020-03-26 17:46:48 111

原创 剑指offer 面试题49 丑数

问题:把只包含质因子2、3和5的数称作丑数(Ugly Number)。求按从小到大的顺序的第N个丑数。输入:N输出:第N个丑数思路:动态规划因为所有的丑数都是由2,3,5相乘得到的,因此创建数组存放中间的结果。设立三个指针,分别标识丑数要乘以的因子2,3,5。从第一个丑数1开始,每次将三个因子指向的丑数与三个因子相乘取最小,得到新的丑数。并将响应因子指针加一。代码:创建数组...

2020-03-26 16:56:30 115

原创 剑指offer 面试题48 最长不含重复字符的子字符串

问题:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。输入:字符串输出:最长子字符串的长度思路:动态规划定义f(i)表示以第i个字符为结尾的不包含重复字符的子字符串的最长长度。代码:复杂度分析:...

2020-03-26 12:06:59 367

原创 剑指offer 面试题47 礼物的最大价值

问题:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物。输入:价值矩阵输出:最大价值思路:动态规划定义f(i,j)为到达i,j的最大价值总和代码:辅助的二维数组存放中间结果,以空...

2020-03-25 20:41:15 709

原创 剑指offer 面试题46 把数字翻译成字符串

问题:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。输入:数字输出:翻译方法的总数思路:定义f(i)为自第i位开始的不同翻译的数目,那么当第i位和第i+1位组合起来在10~25时,g(i,i+...

2020-03-25 20:09:08 97

原创 剑指offer 面试题45 把数组排成最小的数

问题:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。输入:正整数数组输出:拼接后的字符串(输出结果可能非常大,所以你需要返回一个字符串而不是整数)思路:定义比较两个数字m,n大小的新规则,若mn<nm,则m<n,若nm<mn,则n<m。代码:class Solution {public: stat...

2020-03-25 19:40:18 79

原创 剑指offer 面试题44 数字序列中某一位的数字

问题:在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。输入:n输出:数字思路:判断是几位数确定对应着的数值target确定返回值是target中的哪个位代码:class Solution {public: int countOfIntegers(int digits) {...

2020-03-25 19:01:13 96

原创 剑指offer 面试题43 1~n整数中1出现的次数

问题:输入一个整数n,求1~n这n个整数的十进制表示中1出现的次数。输入:n输出:1出现的次数思路:将所有的数字分为两段,1~1345和1346~21345.1、先处理1346~21345中1出现的次数。分为:1在最高位的情况,1出现在除最高位之外的其他4位数中的情况。2、再处理1~1345中1出现的次数,可用递归求得。代码:class Solution {pu...

2020-03-25 16:11:28 118

原创 剑指offer 面试题42 连续子数组的最大和

问题:输入一个整数数组,既有正数,又有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。输入:数组vector<int> array输出:和最大值int思路:贪心,从前向后遍历数组,当子数组和小于0时,抛弃掉前面的子数组。同时,设置maxSum保存子数组的和的最大值。动态规划,f(i)表示以i结尾的子数组的和的最大值,递归公式如下:代码...

2020-03-25 11:18:16 99

原创 剑指offer 面试题41 数据流中的中位数

问题:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。输入:...

2020-03-24 01:12:19 55

原创 leetcode[1312] 让字符串成为回文串的最少插入次数

问题:给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。请你返回让 s 成为回文串的 最少操作次数 。输入:字符串输出:最少操作次数思路:f(i,j)代码:class Solution {public: vector<vector<int>> dp; int findMin(string &s,i...

2020-03-24 00:27:43 217

原创 剑指offer 面试题40 最小的K个数

问题:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,输入:数组,K输出:最小的K个数思路:思路一(可以修改数组)基于Partition函数思路二基于priority_queue(大顶堆)时间复杂度为class Solution {public: vector<int> Get...

2020-03-22 17:00:46 163

原创 剑指offer 面试题39 数组中出现次数超过一半的数字

问题:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。输入:数组输出:寻找的数思路:第一种思路(会修改原数组),基于寻找的数如果存在,一定为中位数,时间复杂度为比较Partition的返回值index和middle,...

2020-03-22 15:53:54 110

原创 leetcode[77] Combinations

问题:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。输入:n,k输出:组合思路:回溯大法好代码:class Solution {public: void backtrack(int n,int k,int len,int start, vector<int> &com,vector<vector<int...

2020-03-22 12:07:55 83

原创 剑指offer 面试题38 字符串的排列

问题:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。输出:所有排列vector<string>思路:将字符串分成两部分,第一个,和第二个到末尾。然后第二个到末尾又可以分为两...

2020-03-22 11:36:38 236

原创 剑指offer 面试题37 序列化二叉树

问题:请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到...

2020-03-21 22:28:25 127

原创 剑指offer 面试题36 二叉搜索树与双向链表

问题:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。输入:二叉搜索树的头节点输出:排序的双向链表的头结点思路:中序遍历二叉搜索树,然后将左子树的最大节点与根节点相连,右子树的最小节点与根节点相连。左子树的最大节点可由已转换链表的最后一个节点(lastNode变量)得到。代码:/*struct Tre...

2020-03-21 17:38:45 71

空空如也

空空如也

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

TA关注的人

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