竖式问题: 找出所有形如abc*de(三位数乘以两位数)的算式,使得在完整的竖式中,所有数字 都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每 一个…
标签:算法
线性时间排序之计数排序
对于排序,我们熟知的合并排序,快速排序,堆排序,插入排序,冒泡排序,选择排序都是属于比较类的排序,这种排序有一个时间复杂度的下限,即排序所需要的最低时间复杂度是O(nlongn);然而还有一些排序在特定情况下时间复杂度能…
位操作_求二进制中1的个数
以下是求x中二进制1的个数的两种方法,第一种是比较常规的逻辑进行循环移位直至为0结束。第二种效率更高些,不需要循环移位,每次只去掉x中的最后一位。(x&(x-1)可实现去除掉最后一位1。另外如果数中1的个数只有一…
全排列的递归与非递归
全排列是一个十分基础的概念,是一串有可比权值的元素出现的所有排列形式,例如 '张全蛋'、'张蛋全'、'全张蛋'、'全蛋 张'、'蛋全张'、'蛋张全'就是张全蛋的全排列,所以我们发现全排列用来取名字是很不错的,如果对每个汉…
《算法》第四版 学习小伙伴招募~
最近刚入坑 《算法》第四版,但是果然不同于国内的一些简单易懂的编程教程书,读了这本书之后,里面的问题好多都无从下手,并且百度也比较难找到前辈们的解决方案,即使是本专业的内容,还有处…
ES6算法---希尔排序 Shell Sort
原理:插入排序的改进版,克服了插入排序每次只能移动相邻位置的缺陷,希尔排序每次可以移动gap个位置 时间复杂度 最优时间复杂度: O(nlogn) 最坏时间复杂度: O(n^2) 稳定性:不稳定 实现方式 functio…
ES6算法系列
掌握常用的算法是从初级前端向中高级前端发展的必经之路,下面将常见的一些算法使用ES6重写一遍,一共6分为6篇,下面是链接地址: ES6算法—冒泡排序 ES6算法—选择排序 ES6算法—插入排序 ES6算法—快速排序 ES…
Boyer-Moore算法
转自:grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍) public class Solution { public String strStr(String haystack, String…
专题一 BFS
部分和 #include<stdio.h> #define N 20 int a[N],b[N]; int n,k; int dfs(int i, int sum); int cou=0; int main(…
第九章-顺序容器
顺序容器 1 顺序容器概述 顺序容器类型 vector 可变大小数组。支持快速随机访问。在尾部之外插入/删除元素可能很慢 deque 双端队列。支持快速随机访问。在头尾位置插入/删除很快 list 双向链表。只支持双向顺…
面经 常见数据结构的算法 - 链表专题
总结常见链表题型 1.链表中倒数第k个结点 题目:输入一个链表,输出链表中倒数第k个节点,为了符合大多数人的习惯,本题从1开始计数,即链表的尾巴节点是倒数第一个节点。 方法1:先遍历链表得到链表的个数n,倒数第k个节点就…
整数点与Pick定理
Pick 定理 设以整数点为顶点的多边形的面积为S,多边形内部的整数点数为N,多边形边界上的整数点数为L,则 …