自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 快手春招笔试题(后端研发)第二题机器人

晚上做完快手的笔试题,编程第二道没有过了30%,忿忿不平,饭都不想吃了。看了会直播念念不忘,顺手做出来了。大致记不住题了,简单描述一下吧:两个正整数,m,n,机器人可以每次走上下左右四个格子,每个格子只要满足x与y的每一位数相加的和小于等于k(k是输入的值),然后计算一共能走多少个格子。忘记m,n,k的范围是啥了。本来吧,想用迭代法,使用栈。然后发现用递归几行代码就搞定了。难受啊,做...

2019-03-31 02:20:14 472

原创 可变参数列表解析

C语言中的可变参数是一个比较有意思的实现,通过将函数实现为可变参数的形式,可以使得函数可以接受1个以上的任意多个参数(不固定)。看一个例子:实现一个函数可以求任意个参数的平均值。#include<stdio.h>#include<stdarg.h>int average(int n, ...){ va_list arg; int i = 0; int s...

2019-02-27 22:51:59 170

原创 844. 比较含退格的字符串

https://leetcode-cn.com/problems/backspace-string-compare/description/给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入...

2018-10-11 15:46:47 162

原创 496. 下一个更大元素 I

https://leetcode-cn.com/problems/next-greater-element-i/description/给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x...

2018-10-11 15:46:04 163

原创 225. 用队列实现栈

使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 de...

2018-10-11 15:45:10 598

原创 155. 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);mi...

2018-10-11 15:44:20 279

原创 20. 有效的括号

https://leetcode-cn.com/problems/valid-parentheses/description/给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true...

2018-10-11 15:42:51 116

原创 150. 逆波兰表达式求值

https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/description/根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 ...

2018-10-11 15:38:12 276

原创 232. 用栈实现队列

https://leetcode-cn.com/problems/implement-queue-using-stacks/description/使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new My...

2018-10-09 14:28:28 134

原创 栈的应用----迷宫

使用C++构建带环回路迷宫,并使用迭代法,递归法求出口使用递归方法求迷宫的最短路径(其实在打印最短路径是使用队列的话路径就不是反着的了)#pragma once#include<iostream>using namespace std;#include<stack>#include<vector>typedef struct Pos

2018-10-09 14:27:57 222

原创 876. 链表的中间结点

https://leetcode-cn.com/problems/middle-of-the-linked-list/description/给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列...

2018-10-09 14:27:08 366

原创 817. 链表组件

https://leetcode-cn.com/problems/linked-list-components/description/给定一个链表(链表结点包含一个整型值)的头结点 head。同时给定列表 G,该列表是上述链表中整型值的一个子集。返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。示例 1:输入: head:...

2018-10-09 14:27:04 358

原创 725. 分隔链表

https://leetcode-cn.com/problems/split-linked-list-in-parts/description/给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的...

2018-10-09 14:26:56 644

原创 707. 设计链表

https://leetcode-cn.com/problems/design-linked-list/description/设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-i...

2018-10-09 14:26:50 200

原创 445. 两数相加 II

https://leetcode-cn.com/problems/add-two-numbers-ii/description/给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示...

2018-10-09 14:26:03 663

原创 430. 扁平化多级双向链表

https://leetcode-cn.com/problems/flatten-a-multilevel-doubly-linked-list/description/您将获得一个双向链表,除了下一个和前一个指针之外,它还有一个子指针,可能指向单独的双向链表。这些子列表可能有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。扁平化列表,使所有结点出现在单级双链表中。您将获得...

2018-10-09 14:25:58 291

原创 328. 奇偶链表

https://leetcode-cn.com/problems/odd-even-linked-list/description/给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1...

2018-10-09 14:25:39 177

原创 237. 删除链表中的节点

https://leetcode-cn.com/problems/delete-node-in-a-linked-list请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9],...

2018-10-09 14:25:35 129

原创 234. 回文链表

https://leetcode-cn.com/problems/palindrome-linked-list/description/请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?/** * De...

2018-10-08 12:11:25 162

原创 206. 反转链表

https://leetcode-cn.com/problems/reverse-linked-list/description/反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递

2018-10-08 12:11:21 147

原创 203. 移除链表元素

https://leetcode-cn.com/problems/remove-linked-list-elements/description/删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4-&

2018-10-08 12:11:09 281

原创 160. 相交链表

https://leetcode-cn.com/problems/intersection-of-two-linked-lists/description/编写一个程序,找到两个单链表相交的起始节点。例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ...

2018-10-08 12:11:03 150

原创 147. 对链表进行插入排序

https://leetcode-cn.com/problems/insertion-sort-list/description/对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素...

2018-10-08 12:10:58 158

原创 143. 重排链表

https://leetcode-cn.com/problems/reorder-list/description/给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4-...

2018-10-08 12:10:48 481

原创 142. 环形链表 II

https://leetcode-cn.com/problems/linked-list-cycle-ii/description/给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。说明:不允许修改给定的链表。进阶:你是否可以不用额外空间解决此题?/** * Definition for singly-linked list. * struct ListN...

2018-10-08 12:10:36 169

原创 141. 环形链表

https://leetcode-cn.com/problems/linked-list-cycle/description/给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *ne...

2018-10-08 12:10:30 131

原创 138. 复制带随机指针的链表

https://leetcode-cn.com/problems/copy-list-with-random-pointer/description/给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深度拷贝。/** * Definition for singly-linked list with a random pointer....

2018-10-08 12:10:22 133

原创 92. 反转链表 II

https://leetcode-cn.com/problems/reverse-linked-list-ii/description/反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3

2018-10-08 12:10:12 144

原创 86. 分隔链表

https://leetcode-cn.com/problems/partition-list/description/给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->...

2018-10-07 21:40:05 155

原创 83. 删除排序链表中的重复元素

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/description/给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2-&g...

2018-10-07 21:38:53 133

原创 82. 删除排序链表中的重复元素 II

https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/description/给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:...

2018-10-07 21:36:53 171

原创 61. 旋转链表

https://leetcode-cn.com/problems/rotate-list/description/给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1...

2018-10-07 21:35:54 119

原创 25. k个一组翻转链表

https://leetcode-cn.com/problems/reverse-nodes-in-k-group/description/给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k...

2018-10-07 21:34:43 121

原创 24. 两两交换链表中的节点

https://leetcode-cn.com/problems/swap-nodes-in-pairs/description/给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行...

2018-10-07 21:33:37 152

原创 23. 合并K个排序链表

https://leetcode-cn.com/problems/merge-k-sorted-lists/description/合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5...

2018-10-07 21:32:26 153

原创 21. 合并两个有序链表

https://leetcode-cn.com/problems/merge-two-sorted-lists/description/将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Defin...

2018-10-07 21:31:03 238 1

原创 19. 删除链表的倒数第N个节点

https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/description/给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5....

2018-10-07 21:29:55 163

原创 2. 两数相加

https://leetcode-cn.com/problems/add-two-numbers/description/给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输...

2018-10-07 21:28:21 151

原创 printf的返回值

碰到一段有意思的代码:#include <stdio.h> int main() { int i=43; printf("%d\n",printf("%d",printf("%d",i))); return 0; }这段代码用了几个printf函数,但是输出的值很有意思为什么会是4321呢?首先调用第一个printf输出43,然后第二个prin...

2018-09-27 14:48:48 1127

空空如也

空空如也

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

TA关注的人

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