自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 26 Remove Duplicates from Sorted Array

使用In-place algorithm 来去重数组 输入:数组 输出:整数 应该是在邓俊辉的数据结构里面讲过去重。 int removeDuplicates(vector<int>& nums) { int len = nums.size(); if(len==0)return 0; int curInd...

2019-03-28 10:18:14 206

原创 25 Reverse Nodes in k-Group

上个题是对链表内任意相邻的两个节点进行反转,这次是对相邻的任意相邻的k个节点进行反转。 输入:头节点,k 输出:头节点 注意事项:只能申请常数额外内存 意思是空间复杂度是O1 不能更改链表中的值,只能更改他们互相的连接状态 如果空间复杂度不能是Ok,那么时间复杂度就是n*n*n/k 话说递归的空间复杂度也是n/k,所以就不能使用递归,而是使用循环。 每k个执行一次反转算法,...

2019-03-28 10:15:54 235

原创 24 Swap Nodes in Pairs

给定一个链表,交换相邻的元素顺序 1234567 2143657 输入:链表头节点指针 输出:链表头节点指针 思路:交换的话,就是直接互相交换 我的思路就是两遍遍历,第一遍将链表存到vector里面,第二遍进行连接 然后就是分治,将一个链表分为偶数个,然后互相连接? a->b->c-> 假如要交换b、c,那么 保存b,c, a-> = b-&g...

2019-03-28 10:13:06 168

原创 23 Merge k Sorted Lists

将k个列表排序汇合 输入:链表节点指针的向量 输出:链表节点的指针 思路: 假设有k个链表,每个链表的平均长度为l 1.连续merge2 2l+3l+4l+…+kl = k*k*l/2 2.直接mergek K*K*l 好像也差不多。 那就写个2merge试试吧 ListNode* mergeKLists(vector<ListNode*>& li...

2019-03-28 10:11:50 153

原创 22 Generate Parentheses

给定数字,然后产生所有括号的嵌套组合 输入:n 输出:括号的字符串 注意事项:括号必须正确闭合和嵌套 思路:这种感觉有点像之前那个电话号码。就是遍历产生的那个。但是这个有点不一样就是所有的括号都是相同的,找的是括号的嵌套方式的不同。还要保证括号的正确闭合。加入将括号看成三个节点,就是互相成为子节点。也就是组成树的所有组合方式。之前那个用栈来解决了,这个可不可以呢。用递归呢,要产生n的树...

2019-03-28 10:10:33 244

原创 21 Merge Two Sorted Lists

将两个链表合并成一个 输入两个链表节点指针 输出,链表节点 要求:节点不是新建的,而是原来的两个链表中的节点 ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* head = new ListNode(0); ListNode* currentNode; hea...

2019-03-28 10:08:56 146

原创 20 Valid Parentheses

括号是否正确匹配 输入:只含有 { }[ ]( ) 的字符串 输出:true false 思路:左部分压栈,右部分出栈 遍历结束全部出栈且正确返回true 否则返回false bool isValid(string s) { stack<char> charStack; for(char c: s){ sw...

2019-03-28 10:07:10 167

原创 19 Remove Nth Node From End of list

给定链表,删除倒数第n个链表节点 输入:链表的头节点,n 输出:链表的头节点 要求:一次提交通过 边界: n = 1 index=size-1 n = size index = 0 思路:最简单的方法为,先遍历一遍,求出来总长度,根据总长度求出需要删除的节点位置,然后遍历到位置,进行删除,返回。 时间复杂度还是O(size) 减小复杂度只能通过不进行第二遍遍历。用...

2019-03-28 10:05:53 127

原创 18 4Sum

不用说了,4数之和最接近target 那么,是否是通过3Sum优化成的4Sum 即先确定一个,然后转化为3Sum问题。 注意事项:结果不包括重复串。 返回值:相应的数字对(可以排序 输入值:数字的向量,int的target 边界确认,第一个数字开始为0,结束为size-4 起码快速通过: class Solution { public: vector<vecto...

2019-03-28 10:03:40 127

原创 17 Letter Combinations of a Phone Number

九宫格打字。 给出一个输入数字串,输出所有可能地字符串组合 然后就跟手机键盘一样对应的字符串。 结果可以是任意顺序。 思路: 按照数学计算,假如有n个数字,每个数字分别对应

2019-03-28 10:01:05 122

原创 16 3sum Closest

输入: nums整数数组 输出: 三数之和的整数 要求: 和最接近给出的target 难度: 中等 思路: 首先先排一个序把。 然后假设先按照3sum的思路,使用三个指针来代表三个数(abc)。对a在数组进行循环,然后bc从两端开始往中间走。b从a开始,c是最右边。令i=a+b+c-target, 如果i>0 那么c往左走, 不然c往左走,如果等于0就输出target。 当i...

2019-03-26 11:38:49 145

原创 15 3Sum && 1 2sum

从给定的n位数组中找到所有的数对,从而使得三个数的合为0 输入:n整数数组 输出 数字对的数组,并且数字对各异 思路:emm对于每一个数进行循环,然后2sum? 3sum的特点和2sum不一样,2sum要求和为一个给定的输入值,但是3sum要求和为固定的0 也就是说,其中两者可以当第三者的相反数?2sum循环一遍? 2sum是On。那么3sum就是O

2019-03-26 11:36:14 244

原创 14 Longest Common Prefix

从string array中寻找最长公共前缀。 flowey flower -> flowe (flower都不会写了只会写flowey undertale病犯了) 所有字母都以小写形式给出。 class Solution { public: string longestCommonPrefix(vector<string>& strs) { ...

2019-03-26 11:32:33 160

原创 13 Roman to Integer

罗马数字转换数字,行吧,你开心就好。 两个是不是可以形成一个永动机,你转化为我,我再转化为你。。。然后堆栈溢出,电脑爆炸,世界毁灭。 按照上题,列出来所有的 M、 CM、D、CD、C、XC、L、XL、X、IX、V、IV、I int romanToInt(string s) { map<string, int> romanHash; rom...

2019-03-26 11:28:58 287

原创 12 Integer to Roman

输入为数字,转换为罗马字符 L: 50 C: 100 D: 500 M: 1000 数字范围: 1-3999 40:ⅠL 差不多这个感觉。 思路:通过求余数获得数字的每一位,然后根据位数转换为罗马数字 class Solution { public: string convert(int num, string one, string five, st...

2019-03-26 11:26:34 145

原创 11 Container With Most Water

给定数组,

2019-03-26 11:23:53 122

原创 10 Regular Expression Matching

给定字符s, 给定正则规则p, 返回字符是否匹配规则 s: 由小写字母组成 p: 由小写字母和 "*"、"."组成 .代表一个字母 *代表0个或任意个前面的字符。 思考了一下,思路不太清晰,感觉做不出来。节约时间,就直接上网查找: 网上的思路之一:动态规划 bool isMatch(string s, string p) { int m = s.size(), ...

2019-03-26 11:21:54 171

原创 9 Palindrome Number

palindrome :回文的 继回文子串之后又来回文数。 题目要求:不转换成string,来判断 题目分析: 负数非回文,0必回文,所以重点在正数 class Solution { public: bool isPalindrome(int x) { if(x < 0) return false; if(x == 0) return tr...

2019-03-26 11:20:00 158

原创 8 atoi

要求,字符串转数字 处理过程: 读取字符串,从头开始,遇到的第一个非空格字符是否为 +/- 或者数字,如果不是,那么返回0 如果是符号,则后面有尽可能多的数字,直到读取到非数字。 如果最后的数字溢出,则返回最大值 特殊情况:空字符串。返回0 int myAtoi(string str) { int integer = 0; ...

2019-03-26 11:17:30 146

原创 7 reverse Integer

输入 32-bit int 输出 reverse digit 注意事项:只能保存整数 reverse之后溢出返回0 1534236469 revrs 之后溢出 int reverse(int x) { ...

2019-03-26 11:16:05 202

空空如也

空空如也

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

TA关注的人

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