
LeetCode & Algorithm
流风雨情
空杯心怀,stay hungry stay foolish
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。
leetcode 192 https://leetcode-cn.com/problems/word-frequency/为了简单起见,你可以假设:words.txt只包括小写字母和 ' ' 。每个单词只由小写字母组成。单词间由一个或多个空格字符分隔。示例:假设 words.txt 内容如下:the day is sunny the thethe sunny is is你的脚本应当输出(以词频降序排列):the 4is 3sunny 2day 1说明:不要担心词频相同原创 2021-04-24 18:34:32 · 1833 阅读 · 0 评论 -
BF算法
package interview;/** * create by liuzhiwei on 2020/4/6 * 字符串匹配 indexof 返回字串第一次出现的位置 */public class HuaWei02_BF { /** * BF算法:是一种蛮力算法。 * 将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和...原创 2020-04-06 22:58:37 · 960 阅读 · 0 评论 -
KMP算法
package interview;/** * create by liuzhiwei on 2020/4/6 * 字符串匹配 indexof 返回字串第一次出现的位置 */public class HuaWei02_KMP { /** * BF算法:是一种蛮力算法。 * 将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符...原创 2020-04-06 22:57:07 · 327 阅读 · 0 评论 -
MD5加密解密算法
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。 将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。 MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意原创 2017-11-06 23:18:50 · 1939 阅读 · 0 评论 -
笔试题记录
记录原创 2017-10-17 00:03:41 · 284 阅读 · 0 评论 -
关于Java的一道题:"求二进制数中1的个数"的解法整理
package com.accp;/** * 求二进制数中1的个数 * * @author Administrator * */public class BinaryConversion { /** * 解法一 通过相除和判断余数的值的方法计算 * * @param num * 传入的数字 * @return 二进制数1的个数 */原创 2017-09-18 00:19:44 · 461 阅读 · 0 评论 -
求闰年
package dianxin;/* * 从控制台输入年份,判断从1970年至你输入年份总共有 * 多少个闰年 ,把这些闰年按照每行4个的格式打印输出 */import java.util.Scanner;public class CountYear { public static void main(String[] args) { Scanner scan = n原创 2017-09-18 00:16:07 · 497 阅读 · 0 评论 -
求数组第二小的数和第二大数的下标
输入 : 1 2 3 1 1 2 3 输出 2 2package dianxin;import java.util.Arrays;import java.util.Scanner;public class asda { public static void main(String[] args) { Scanner sc = new Scanner(Syste原创 2017-09-17 23:58:49 · 1912 阅读 · 0 评论 -
输入字母全排列
import java.util.Arrays;/***字典序全排列*字符串的全排列*比如单词"too" 它的全排列是"oot","oto","too"*1,从右端开始扫描,若出现前一个比后一个小,记录前一个的元素下表index*2,再找出index以后比该元素大的中的最小值的下标,(实现见 下面的getMin方法)*3,index以后的元素实现反转(实现 见下面的reverse方法)原创 2017-09-17 23:34:27 · 453 阅读 · 0 评论 -
笔试编程题-2017电信
1 进制转换 10进制转换为16进制package dianxin;import java.util.Scanner;public class 进制 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){原创 2017-09-17 23:28:58 · 4690 阅读 · 0 评论 -
MD5理解
MD5概念 MD5,全名Message Digest Algorithm 5 ,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。上面这段话话引用自百度百科,我的理解:MD5是一种信息摘要算法,主要是通过特定的hash散列方法将文本信息转换成简短的信息摘要,压缩+加密+hash算法的结合体,是绝对不可逆的。MD5算法简单的来说就是把任意长度的字串变换成原创 2017-08-08 19:54:19 · 854 阅读 · 0 评论 -
面试中排序算法问题
面试中的排序算法总结查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。 面试官转载 2017-03-15 20:32:32 · 1199 阅读 · 0 评论 -
面试中排序算法问题
面试中的排序算法总结 2016-06-02 16:42:4121112浏览 3评论 查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两转载 2017-03-15 20:30:59 · 360 阅读 · 0 评论 -
带头结点的单链表
/*带头结点的单链表*/#include <iostream>#include <cstdlib>using namespace std;template<class T>struct LinkNode{ T data; LinkNode<T> *next; LinkNode(LinkNode<T> *ptr = NULL){next = ptr;} Li原创 2017-03-07 21:57:59 · 470 阅读 · 0 评论 -
抽象数据类型(Abstract Data Type)
ADT(2015.6.8) 抽象数据类型(Abstract Data Type)是指一个数学模型以及定义在该模型上的一组操作。 ADT包括数据数据元素,数据关系以及相关的操作。 即ADT { 数据对象:(数据元素集合) 数据关系:(数据关系二元组结合) 基本操作:(操作函数的罗列) } 抽象数据类型(ADT)是一个实现包括储存数据元素的存储结构以及实现基本操作的算法。在这个数据抽象原创 2017-03-04 09:27:38 · 8300 阅读 · 0 评论 -
找素数
#include <stdlib.h>#include <stdio.h>#include <sys/time.h>#include <math.h>int main(){ struct timeval tv1,tv2; struct timezone tz; int t; int n; printf("请输入一个整数n:"); scanf("原创 2017-03-04 09:21:22 · 359 阅读 · 0 评论 -
快速排序算法
快速排序由C. A. R. Hoare在1962年提出。趟快速排序的算法是:1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A原创 2016-10-27 09:11:15 · 293 阅读 · 0 评论 -
二分查找和二分排序
二分查找又称折半查找凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth(一个很牛逼的人) 让他获得图灵奖的这句话就是他提出的著名公式: “算法+数据结构=程序”。 这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”——一个公式展示出了程序的本质。,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难算法要求 1. 必原创 2016-10-26 22:52:25 · 7089 阅读 · 1 评论 -
递归和迭代的区别
递归递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.使用递归要注意的有两点:递归就是在过程或函数里面调用自身;在使用递归时,必须有一个明确的递归结束条件,称为递归出口.递归分为两原创 2016-10-11 22:32:39 · 665 阅读 · 0 评论 -
排序算法--总结
冒泡排序核心思想假如n个数按照由小到大的顺序排列,从后往前升序相邻两两比较大小,(我觉得比较好理解),如果前一位比后一位大就立刻把它俩换位,直接交换位置,第一遍下来,最大的在最后一位,之后不用在比较最后一位了,第二遍,次大的在第二位。。。。。。第一遍比较了n-1次,交换了不确定次,第二遍比较了n-2次。。。。。void bubble_sort(int a[],int n){ int tem原创 2016-10-10 23:05:58 · 487 阅读 · 0 评论 -
布线问题-分支限界法c++实现
布线问题-分支限界法问题描述 印刷电路板不限区域划分成n*m个方格阵列。如下图所示分支限界法类似于回溯法,也是在问题的解空间上搜索问题的解的算法。分支限界法是找出满足约束条件的一个解或者满足某种条件的最优解。分支限界法则以广度优先或者最小耗费优先的方式搜索解空间。其搜索策略是:1、在扩展结点处,先生成其所有的儿子结点,然后再从当前的活结点表中选择下一个扩展结点。2、为了加速搜索的进程,在每一个原创 2016-10-10 20:10:39 · 5292 阅读 · 1 评论 -
LeetCode-824-山羊拉丁文
LeetCode-824-山羊拉丁文给定一个由空格分割单词的句子 S。每个单词只包含大写或小写字母。我们要将句子转换为 “Goat Latin”(一种类似于 猪拉丁文 - Pig Latin 的虚构语言)。山羊拉丁文的规则如下:如果单词以元音开头(a, e, i, o, u),在单词后添加"ma"。例如,单词"apple"变为"applema"。如果单词以辅音字母开头(即非元音...原创 2019-11-18 18:46:17 · 142 阅读 · 0 评论