循环不变式,是指让每次循环都成立的逻辑表达式,用于证明整个算法的正确性。 它通过证明循环体三条性质的正确性来证明整个算法的正确性。 三条性质: 初始化:循环的第一次迭代前,循环不变式为真。 即初始化的数据结构与原始数据都…
标签:数据结构
剑指Offer-24 二叉树中和为某一值的路径
问题描述: 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 基本…
66.加一
一、题目原型: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 二、题目意思剖析: …
带万能牌的麻将和牌算法
该算法通过计算需要的万能牌个数,和已经拥有的万能牌个数对比来判断是否胡牌,算法通用,且效率高,计算胡牌算法每秒钟可以运行三百万次以上。以下是算法的具体内容。 1. 所有合法牌: 0x01 0x02 0x03 0x04 0…
《Redis入门指南》之基本的数据结构
《redis入门指南》这本书入门不错,值得推荐,每一章都有些干活。这里分别加以总结,并增加了自己的一些理解。 常见数据结构 字符串类型 这是最常见的key-value的结构,但是现在的no-sql远不止于此: 我们来看看…
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,链表的数组实现,仿照精简…
剑指Offer53 字符串转数字(逻辑复杂题)
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100″,”5e2″,”-123″,”3.1416̸…
快排递归实现
基本思想:(分治) 先从数列中取出一个数作为key值; 将比这个数小的数全部放在它的左边,大于或等于它的数全部放在它的右边; 对左右两个小数列重复第二步,直至各区间只有1个数。 时间复杂度nlogn,不稳定 实现 快排的…