# [leetcode题解]15. 3sum

Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets …

# 14. Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string “”. Example 1: Input: [“flower”,”flow”,”fli …

# [leetcode题解]9. Palindrome Number

Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same backward as forward. Example 1: Input: 121 Output: true Example 2: Input: -121 Outpu …

# [leetcode题解]8. String to Integer (atoi)

Implement atoi which converts a string to an integer. The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, sta …

# [leetcode题解]7. Reverse Integer

Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note: Assume we are dealing with an …

# [leetcode题解]6. ZigZag Conversion

The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility) P A H …

# [leetcode题解]03.Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters. Examples: Given “abcabcbb”, the answer is “abc”, which the length is …

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two …

# [leetcode题解]001.Two Sum

You may assume that each input would have exactly one solution, and you may not use the same element twice. Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, ret …

# leetcode刷题汇总

leetcode题目不断刷新，大家也都一直在刷，本文记录作者刷题记录，一直更新，权当抛砖引玉，欢迎大家一块交流学习。如果各位leetcoder发现题解有问题，欢迎指正交流，也希望大家可以提出更新颖的解题方法。新建leetcode算法交流群259150720，欢迎leetcoder进群交流。 0001 Two Sum array Easy 0002 Add Two Numbers linked li …

# [leetcode题解]547. Friend Circles,朋友圈

There are N students in a class. Some of them are friends, while some are not. Their friendship is transitive in nature. For example, if A is a direct friend of B, and B is a  …

# [leetcode题解]859. Buddy Strings

Given two strings A and B of lowercase letters, return true if and only if we can swap two letters in A so that the result equals B.   Example 1: …

# [leetcode题解]130. Surrounded Regions

Given a 2D board containing ‘X’ and ‘O’ (the letter O), capture all regions surrounded by ‘X’. A region is captured by flipping all &# …

# [leetcode题解]303. Range Sum Query – Immutable

Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. Example: Given nums = [-2, 0, 3, -5, 2, -1] sumRange(0, 2) -&gt …

# [leetcode题解]快速求解某数的下取整平方根

leetcode第69题，计算某数的下取整平方根sqrt(x) 题目如下： Implement int sqrt(int x). Compute and return the square root of x, where x is guaranteed to be a non-negative integer. Since the return type& …

# 476. Number Complement

476. Number Complement Given a positive integer, output its complement number. The complement strategy is to flip the bits of its binary representation. Note: The given integer is guaranteed to fit wi …

# [leetcode题解]215.Kth Largest Element in an Array(数组中找第k大数)

leetcode,215,Kth Largest Element in an Array,给定一个包括若干元素的数组以及一个k，要求在数组中找出第k大的数。 通常的思路是排序，然后可以快速找到第k大的数，时间复杂度o(nlogn)。比较好的方法是借助快排的思想，一次轴分，可以以o(n)的时间复杂度找到第k大数。 c++代码： class Solution { public: //author:凌风 …

# leetcode 单链表相关题目汇总

leetcode-2-Add Two Numbers—两链表表示的数相加                        leetcode-19-Remove Nth From End of List—移除链表中倒数第n个元素  leetcode- …

# [leetcode题解]143. Reorder List(链表重排序)

leetcode第143题，recorder list，属于linked-list相关的题目。 题目给定一个单链表，然后要求按给定的顺序重新排列所有元素，要求在原地做，而且不能修改节点中的值，只能修改节点的插入顺序。重排序的规则如下示例： L:a0->a1->a2->a3…..->an 将其修改为L:a0->an->a1->an-1->& …

leetcode，2，Add Two Numbers,给定两个单链表，将两个单链表从左到右进行相加，题目中已知不会出现前导0。本题可以直接对两单链表同时进行遍历相加即可，保留一个进位，检测最后是否要进行正确进位，python和c++两种语言写，代码如下： python代码 class Solution(object): def addTwoNumbers(self, l1, l2): “”” :t …

# [leetcode题解]19.Remove Nth Node From End of List(删除倒数N个元素)

leetcode,19,Remove Nth Node From End of List,给定一个单链表，删除倒数第N个元素，要求进行一遍遍历即可。思路是利用两个指针，一个提前走N步，然后另一个指针指向开头，两个指针同时走，当前面的指针到尾部时，后面的指针正好位于要删除的元素位置。为了得到要删除位置的前一个位置，可以加入一个预头，然后，前面的指针从头开始，后面的指针从预头开始。 c++代码： cl …

# [leetcode题解]21.Merge two Sorted Lists（两排序链表合并）

leetcode,21,Merge Two Sorted Lists,单链表合并问题，合并两个已排序链表为一个完整的已排序链表。 直接使用两个指针依次比较其中值大小即可，小的插入，并且指针后移，最后不要忘记把剩下的非空链表加入链尾。 此题的升级版本为leetcode,23,Merge K Sorted Lists.  c++代码： class Solution { public: Lis …

# [leetcode题解]23.Merge K Sorted Lists(多链表合并)

leetcode,23题，Merge K Sorted Lists,多排序链表合并为一个有序链表问题。可以直接使用priority_queue或者heap。 多个链表以vector形式组织，vector中可能含有空链表，所以建堆或者初始化优先队列之前先对vector进行过滤，将空链表过滤掉。 注意优先队列的写法，类型，底层容器，以及要用到的比较器，比较器是一个重载了括号操作符的普通类。 c++题解 …

# [leetcode题解]24.Swap Nodes in Pairs(节点交换)

leetcode 第24题，将链表中相邻元素位置颠倒，题目要求不能改变元素节点中元素的值，只能改动节点位置。也就是要求在链表中删除插入。 python代码如下： # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = No …

# [leetcode题解]86.Partition List(链表分割)

leetcode第86题，partition-list，是一个关于链表分割的题目。题目给定一个单链表和一个数x，要求链表中节点val小于x的节点全部在左边，而大于等于x的节点全部在右边，而且左右两边中的元素分别保持在原链表中的相对位置。总体来说就类似于快排中的partition部分。所以这个的实现可以直接使用快排的中partition方法直接在单链表上更换节点的值就好。 这里使用最原始的思路，就是 …

leetcode第92题，reverse-linked-list-ii，题目是一个单链表的题目，给定一个单链表，然后告诉一个区间[n,m]，然后要求将链表中第n到m个节点逆序，这里保证n和m是合法的，即1 <= n <= m <= 链表长度，链表的节点id从1开始计数。 思路比较简单，设定两个指针，以前以后，首先数n个节点，然后将后面的m – n个节点进行头插(逆序插 …

# [leetcode题解]109.Convert sorted list to binary search tree

leetcode 109,convert sorted list to binary search tree,给定一个已排好序的单链表，将其转换为一棵平衡二叉查找树，平衡二叉查找树要求左右子树的高度差小于等于1，而且左子树上的节点都小于等于当前根节点，有子树上的节点都大于当前根节点。 由于单链表本身就已经排好序了，所以，只要保证左右子树高度满足即可，可以以链表的中心节点为界，将链表一分为二，这样左 …

# [leetcode题解]138.Copy List with Random Pointer(linked-list)

leetcode,138.copy list with random pointer. 正常的单链表中只有一个next的指针指向下一个元素的地址，本题给定一个链表，这个链表比较特殊，不仅有指向下一个元素的next指针，还有一个指向链表中随机元素的一个random指针(random pointer)。 题目要求对该链表进行拷贝，在新的拷贝中，元素的链接关系不变，注意这里的拷贝要求的是深拷贝。 由于r …