自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Leetcode 61 Rotate List

链表很多题目还是应用穿针引线的方法。这道题有两个关键之处:1.要把tail->next = head2.找到倒数 k % len + 1的节点,从而能访问到倒数k%len的节点。class Solution {public: ListNode* rotateRight(ListNode* head, int k) { if (he...

2018-09-04 23:02:00 128

转载 Leetcode 328 Odd Even Linked List

这道题是merge two linked list的逆过程,即就是先要分成两个linked list,然后合并到一起即可。class Solution {public: ListNode* oddEvenList(ListNode* head) { if (head == NULL || head->next == NULL) { ...

2018-09-04 21:29:00 138

转载 Leetcode 24 Swap Nodes in Pairs

这道题又是套路的一个特殊情况,具体代码如下:class Solution {public: ListNode* swapPairs(ListNode* head) { if (head == NULL || head->next == NULL) { return head; } ...

2018-09-04 21:19:00 143

转载 Leetcode 25 Reverse Nodes in k-Group

这道题和上面两道相比,是反转链表中更加普通的情况。解决这道题需要两次循环,第一次求得长度,通过长度分段进行反转。第二次循环分段进行反转,分段反转就是Reverse Linked List II的情况了。在第二次循环中有两个循环,一个是外层循环,一个是内层循环。内层的逻辑和之前的代码完全一致。外层循环的任务是改变prev(prev = cur)和循环变量。具体代码如下:...

2018-09-04 21:09:00 137

转载 Leetcode 92 Reverse Linked List II

这道题和Reverse Linked List差不多,就是差一个范围。如果搞明白了那个套路,这道题还是非常简单的,具体代码如下所示:class Solution {public: ListNode* reverseBetween(ListNode* head, int m, int n) { if (head == NULL || head-&gt...

2018-09-04 20:57:00 82

转载 Leetcode 链表反转套路

我们先从该套路的一个最简单的情况说起,也就是206.Reverse Linked List。它是该套路的一个最简单的的情况,怎么个简单法呢?只需要一个循环即可解决问题。那具体是怎么解决的呢?假设虚拟头结点对应的值为-1,我们要反转的链表为1->2->3->4。连接起来即就是-1->1->2->3->4。假设prev->-1, ...

2018-09-04 20:47:00 163

转载 Leetcode 92 Reverse Linked List II

这道题相比Reverse Linked List,结果如下图所示,其实我们不需要再做太多的工作,只需要改变两个指针指向即可。所以需要在循环之前,保存这两个指针,然后指向正确的位置即可。另外,要注意的点是index是从1开始的。/** * Definition for singly-linked list. * struct ListNode { * ...

2018-09-02 09:24:00 72

转载 Leetcode 206 Reverse Linked List

链表反转是非常经典的题目。包括cur(current)和prev比较容易理解。为什么需要next,如果直接cur->next = prev,就会造成断链。循环体三步操作是:1. cur->next = prev;2. prev = cur;3. cur = next;class Solution {public: ListNode* re...

2018-09-01 22:16:00 80

转载 Leetcode 149 Max Points on a Line

对于点来说,分三种情况:1.普通点:具有斜率。2.垂直于X轴的点:斜率无穷大。3.坐标相同的点。我们将1和2分别进行讨论,然后和3的个数分别相加,求出较大者,即为对于一个点来说,和它共线的最多的点的个数。再通过循环得出最大值即可。class Solution {public: double getGradient(Point p1, ...

2018-09-01 01:15:00 81

转载 Leetcode 447 Number of Boomerangs

又是一道查找表的题目,题目的思路是二重循环求每个点和其它点的距离,将距离作为map的key,如果距离相同则对value+1。我们需要对每个点求出boomerangs,然后进行累加得到结果。class Solution {public: int getDistance(pair<int, int> pa, pair<int, int> pb...

2018-08-31 14:30:00 70

转载 Leetcode 49 Group Anagrams

这道题属于查找表问题,最核心的内容在于key和value分别保存什么样的值。刚开始想了很久也没想出来,因为这道题正确的解答之一是利用unordered_map<string, vector<string>>,即value是个容器。key是对每个字符串进行排序后的结果。class Solution {public: vector<...

2018-08-31 13:49:00 69

转载 Leetcode 18 4Sum

这道题也是对撞指针的题目。很像3Sum,就多了一层循环,时间复杂度也就从O(n^2)增长到了O(n^3)。class Solution {public: vector<vector<int>> fourSum(vector<int>& nums, int target) { int n = nums...

2018-08-29 21:32:00 77

转载 Leetcode 16 3Sum Closest

这道题和3sum非常类似。区别的一点就是一旦找到了answer就直接return了,而不需要做进一步的处理了。代码如下所示:class Solution {public: int threeSumClosest(vector<int>& nums, int target) { int n = nums.size(); ...

2018-08-29 21:18:00 98

转载 Leetcode 15 3Sum

这道题又是对撞指针的妙用,使用对撞指针的几个注意点:1.数组必须是排好序的。2.对于各种相等的处理。class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { int n = nums.size(); ...

2018-08-29 21:07:00 61

转载 Leetcode对撞指针

先从一个简单的例子开始,给定一个排序好的数组,int nums[] = {-2, 0, 1, 3},求出两两之和为target(target = 1)的组合。最开始学习对撞指针非常疑惑的地方就在于,除了-2 + 3 = 1,还有0 + 1 = 1。因为对撞指针解决的往往并不是唯一解问题。假设l = 0, r = n - 1 = 3,nums[l] + nums[r] == ...

2018-08-29 20:54:00 172

转载 Leetcode 11 Container With Most Water

本题不是很难,应用对撞指针就可以得到正确的答案。说下自己犯的一些错误吧,1. int short = 0,结果编译后出现了Line 4: expected unqualified-id before '=' token的错误,当时我还是一脸懵逼,还以为是标点符号或者其他的错误。后来才想起来,short指代的是基本数据类型short int。2.将--r写成了++r。神奇的是,使...

2018-08-28 08:09:00 103

转载 Leetcode 罗马数字的两道题目

在Leetcode上有两道题目是有关罗马数字的,一道是把罗马数字转换成阿拉伯数字,另一道是把阿拉伯数字转换成罗马数字。具体来说是Leetcode 12题Integer to Roman和13题Roman to Integer。具体的规则可见https://en.wikipedia.org/wiki/Roman_numerals或者https://baike.baidu.com/i...

2018-08-21 00:24:00 196

转载 wireshark的基本设置

修改默认设置Wireshark是一个很好的工具,但是它的默认设置用起来却不是很顺手。绝大多数的人会改变它的默认设置。这篇博客主要是讲如何修改wireshark的列设置。默认列设置包括:包number、时间、源IP、目的IP、协议、长度、和信息。如下所示:让我们来进行修改参数,点击菜单栏 edit --> Preferences:...

2018-08-17 16:35:00 2886

转载 Leetcode 1 Two Sum

题目描述Given an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would haveexactlyone solution, and you may not us...

2018-08-14 20:38:00 79

转载 在Java中做单元测试

单元测试是发现和解决Bug的重要途径之一。如何在IDEA(Java的一款IDE)快速做单元测试呢?1. 在写好的类中,按ctrl+shift+T,会出现以下对话框,选择好要进行测试的类,如ArrayStack。2. 创建新的测试3.选择测试框架以及要测试的函数常用的测试框架为Junit4import org.junit.Assertimport org....

2018-07-31 17:04:00 178

转载 在c/c++中调用Python

1.牛刀小试#include <Python.h>int main() {  Py_Initialize();  PyRun_SimpleString("import sys");  PyRun_SimpleString("print sys.version");  return 0;}编译命令  g++ -I/us...

2018-07-27 18:25:00 68

空空如也

空空如也

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

TA关注的人

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