自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二进制链表转整数

给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的 十进制值 。示例 1:输入:head = [1,0,1]输出:5解释:二进制数 (101) 转化为十进制数 (5)示例 2:输入:head = [0]输出:0示例 3:输入:head = [1]输出:1示例 4:输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]输出:18880示例 5:输入:head

2020-07-16 01:06:15 144

原创 相交链表

编写一个程序,找到两个单链表相交的起始节点。解法1 – set容器空间复杂度 O(N)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersect

2020-07-15 02:39:42 84

原创 回文链表

编写一个函数,检查输入的链表是否是回文的。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解法1、通过快慢指针找到中间结点2、通过头插法将链表前半段反转3、最后比较/** * Definition for singly-linked list. * struct ListNode { * int val; * Lis

2020-07-15 01:07:01 111

原创 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解法1栈/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} *

2020-07-14 16:41:03 62

原创 删除中间节点

实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。示例:输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode

2020-07-14 15:23:27 212

原创 删除链表 M 个节点之后的 N 个节点

给定链表 head 和两个整数 m 和 n. 遍历该链表并按照如下方式删除节点:1、开始时以头节点作为当前节点.2、保留以当前节点开始的前 m 个节点.3、删除接下来的 n 个节点.4、重复步骤 2 和 3, 直到到达链表结尾.5、在删除了指定结点之后, 返回修改过后的链表的头节点.进阶问题: 你能通过就地修改链表的方式解决这个问题吗?示例 1:输入: head = [1,2,3,4,5,6,7,8,9,10,11,12,13], m = 2, n = 3输出: [1,2,6,7,11,

2020-07-14 15:10:20 1322 1

原创 返回倒数第k个节点

面试题 02.02. 返回倒数第 k 个节点实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。注意:本题相对原题稍作改动示例:输入: 1->2->3->4->5 和 k = 2输出: 4说明:给定的 k 保证是有效的。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(in

2020-07-14 13:29:42 71

原创 链表相交

面试题 02.07. 链表相交给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释

2020-07-13 15:40:41 92

原创 线性表

一、线性表基本操作如下:1、线性表的置空操作clear():将一个已经存在的线性表置为空表。2、线性表判空操作isEmpty():判断线性表是否为空,若为空,则返回true;否则,返回为false。3、求线性表的长度操作length():求线性表中的数据元素的个数并返回其值。4、取元素操作get(i):读取并返回线性表中的第i个数据元素的值。其中i的取值范围为0≤i≤length()-1。5、插入操作insert(i,x):在线性表的第i个数据元素之前插入一个值为x的数据元素。其中i的取值范围为0

2020-07-12 01:38:11 3802

原创 leetcode两数相加

两数相加给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807解法1具体步骤:1、获取两个链表所对应的长度2、在较短

2020-07-11 23:14:33 92

原创 leetcode两数之和

leetcode两数之和暴力解法class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int>ans; for(int i=0;i<nums.size();i++){ for(int j=i;j<nums.size();j++){ if(nums[i]+nums[j]==target

2020-07-11 11:57:33 124

空空如也

空空如也

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

TA关注的人

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