翻转链表 描述 翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 思路 1、 我们需要定义两个临时ListNode,一个保存当前…
分类:数据结构
数据结构相关面试问题
重要参考链接[https://juejin.im/post/58ca051f61ff4b0060165122] 堆与栈(http://blog.csdn.net/hairetz/article/details/41410…
Python数据结构-链表
自己实现一遍果然感觉不一样 Python实现单链表 class SingleNode(object): """单个节点""" def __init__(self, item): # 表元素 self.item = ite…
循环不变式(loop invariant)
循环不变式,是指让每次循环都成立的逻辑表达式,用于证明整个算法的正确性。 它通过证明循环体三条性质的正确性来证明整个算法的正确性。 三条性质: 初始化:循环的第一次迭代前,循环不变式为真。 即初始化的数据结构与原始数据都…
剑指Offer-24 二叉树中和为某一值的路径
问题描述: 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 基本…
66.加一
一、题目原型: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 二、题目意思剖析: …
带万能牌的麻将和牌算法
该算法通过计算需要的万能牌个数,和已经拥有的万能牌个数对比来判断是否胡牌,算法通用,且效率高,计算胡牌算法每秒钟可以运行三百万次以上。以下是算法的具体内容。 1. 所有合法牌: 0x01 0x02 0x03 0x04 0…
Python入门——基本数据结构
Python里面的数据结构,基本的有下面几种,列表,集合,元组,对于不同的数据结构当然有不同的表现形式,操作方法了,先来看看各种数据结构的表示方式 #列表 [1,2,3,4,5,6] #元组 (1,2,3,4,5,6) …
LeetCode 2
Add Two Numbers 题目描述 You are given two non-empty linked lists representing two non-negative integers. The digi…
冒泡排序之我的理解
冒泡排序 步骤: 1, 将列表倒序取值,两两比较,(前一位和后一位),如果前一位小于后一位,将两者置换 2,每交换一轮,即每轮的最小值被移到最首位,开始下一轮比较前,将比较值的下标前移 问题: 为什么要倒序两两比较? 回…
BZOJ-1266: [AHOI2006]上学路线route(最短路+最小割)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1266 按题意跑一次SPFA之后再建最短路图,然后跑一次最小流求最小割即可。 代码: #include <cs…
跟Java集合学数据结构之 ArrayList
链表是很常见的一种数据结构。通常有两种实现方式:一种是使用数组,一种使用指针。数组涉及数据移动和扩容问题,但随机查找方便;指针插入删除方便,但随机查找不方便 下面学习java的ArrayList,链表的数组实现,仿照精简…