
算法
文章平均质量分 60
凌晨里的无聊人
这个作者很懒,什么都没留下…
展开
-
在开发java项目的时候,该如何设置mysql的主键才能在大环境下不被淘汰并且实现高可用
关于mysql自增主键在不同应用场景的设计原创 2022-07-10 20:37:07 · 268 阅读 · 0 评论 -
在线批量身份证识别系统
一套前后端 Springboot+Thymeleaf 的批量身份证识别系统原创 2022-06-02 17:17:39 · 1142 阅读 · 0 评论 -
毕业设计---用算法实现OCR文字识别(基于java实现的文字识别技术)
文末附源码:识别效果如下图:由于是自己实现算法所以识别率不算太高,但是这个相比较一般的模型,识别这么多还是可以的,如果需要做的只是识别率比较高,不关注谁去实现的算法,可以采用第三方的API 百度智能云就很不错,使用方式和前面的百度AI实现人脸识别方式一样,可以参考前面发表的文章。本文参考如下:参考原文链接:https://blog.youkuaiyun.com/white__cat/article/details/38461449对于这个里面其实有些类是用不到的,我经过本地运行以后,现在只要你把项目导入,原创 2022-05-21 17:37:19 · 912 阅读 · 0 评论 -
MD5加密算法
加密算法是指通过md5工具将密码转换成16进制的字符串,一共32位长度接下来的代码主要涉及四种加密方式:1 自定义加密解密2 普通md5加密3,md5 加盐加密4 文件加密,文件加密还是比较靠谱的,不容易被密码撞库破解package com.daybreak.util;import java.io.File;import java.io.FileInputStream;import java.security.MessageDigest;import java.security.NoS原创 2022-05-02 22:14:59 · 1364 阅读 · 0 评论 -
基于人脸识别的门禁系统设计与实现--论文
最近 在设计基于人脸识别的门禁系统时,看到几篇比较优秀的论文,描述了人脸识别算法的研究过程:https://max.book118.com/html/2020/0522/5343322004002300.shtmhttps://www.docin.com/p-1545154552.htmlhttps://www.fx361.com/page/2019/0522/5144153.shtmlhttps://max.book118.com/html/2018/0706/7144120115001136.s原创 2022-04-07 13:25:38 · 1973 阅读 · 0 评论 -
34个经典的 java程序员八股文问题
已下文章来自 作者喜爱的 博主 沉默王二直达原文链接1 简单介绍javajava 是一门开源的跨平台的面向对象的计算机语言.跨平台是因为 java 的 class 文件是运行在虚拟机上的,其实跨平台的,而虚拟机是不同平台有不同版本,所以说 java 是跨平台的.面向对象有几个特点:1.封装两层含义:一层含义是把对象的属性和行为看成一个密不可分的整体,将这两者’封装’在一个不可分割的独立单元中另一层含义指’信息隐藏,把不需要让外界知道的信息隐藏起来,有些对象的属性及行为允许外界用户知道或原创 2022-01-23 17:02:57 · 873 阅读 · 0 评论 -
力扣 350题-----求两个数组的交集
就着官方的题解给出答案把重要是理解里边的map集合和哈希的方法使用看一下这篇文章就会理解,我认为只有他的普通版稍微不好理解,然后下边哪个更好理解第一种由于同一个数字在两个数组中都可能出现多次,因此需要用哈希表存储每个数字出现的次数。对于一个数字,其在交集中出现的次数等于该数字在两个数组中出现次数的最小值。首先遍历第一个数组,并在哈希表中记录第一个数组中的每个数字以及对应出现的次数,然后遍历第二个数组,对于第二个数组中的每个数字,如果在哈希表中存在这个数字,则将该数字添加到答案,并减少哈希表中该数转载 2021-05-22 22:22:53 · 164 阅读 · 0 评论 -
关于堆的介绍
前言堆是生产中非常重要也很实用的一种数据结构,也是面试中比如求 Top K 等问题的非常热门的考点,本文旨在全面介绍堆的基本操作与其在生产中的主要应用,相信大家看了肯定收获满满!本文将会从以下几个方面来讲述堆:生产中的常见问题堆的定义堆的基本操作堆排序堆在生产中应用生产中的常见问题我们在生产中经常碰到以下常见的问题:优先级队列的应用场景很广,它是如何实现的呢如何求 Top K 问题TP99 是生产中的一个非常重要的指标,如何快速计算可能你已经猜到了,以上生产上的高频问题都可以用堆来转载 2020-05-16 12:25:00 · 359 阅读 · 0 评论 -
用JAVA实现十大经典排序算法的总结
本文转载于 Java建设者术语说明稳定:如果a原本在b前面,而a=b,排序之后仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度: 一个算法执行所耗费的时间。空间复杂度:运行完一个程序所需内存的大小。比较和非比较的区别常见的快速排序、归并排序、堆排序、冒泡排序等属于比较排序。在排序的最终结果里,元素之间的次序依赖于转载 2020-05-16 12:13:21 · 323 阅读 · 0 评论 -
寻找缺失的整数
在一个无序数组里有99个不重复的正整数,范围从1到100.有99个不重复的数字,如何找出缺失的整数解法1 创建一个哈希表,把这100个整数存入key,然后遍历数组,最终,删除99个数据以后,剩下的就是缺失的整数。时间复杂度为O(n)空间复杂度为O(n)解法2 把数组排序,然后遍历数组,发现两个相邻的数字不连续,那么就证明缺失的就是这两个数解法3 把 1-100数字的累加和加起来,然后再依次减去数组中的数字,就可以求出;...原创 2020-05-11 21:01:28 · 605 阅读 · 0 评论 -
如何求出最大公约数
求最大公约数你有什么办法第一种方法还是我们的暴力法,但是在两个数的数据比较大的时候这种方法就不不好用了,还是先写代码#include <iostream>using namespace std;int greatest_common_divisor(int a,int b){ int max=a>b?a:b; int min=a<b?a:b; if(max%min==0) return min; for(int i=min/2;i>1;i--) {原创 2020-05-10 20:39:32 · 343 阅读 · 0 评论 -
今天的算法题目是如何判断一个单链表有环
类似于追及问题创建两个指针,p2每一步走两个,p1每一步走一个画的有点丑,如图,如果有环的情况下,最终他们会相遇那么代码如下#include <iostream>using namespace std;typedef struct LNode{ int data; struct LNode* next;}LinkNode;bool Is_Circle(LNode *head){ LNode* p1 = head; LNode* p2 = he原创 2020-05-09 19:41:44 · 211 阅读 · 1 评论 -
今天聊聊快速排序
快速排序属于交换排序 采 用分治法比冒泡排序时间复杂度低了一点,快速排序的思想是 每一轮挑选一个基准元素,并让剩下的比他大的元素移动到一边,比它小的元素移动到另一边,把数列拆成两个部分分而治之,在最终通过递归,使每个子序列只剩一个元素,这时候就是已经排好序的双边循环法:代码#include <iostream>using namespace std;//双边循环法i...原创 2020-05-06 22:16:18 · 151 阅读 · 0 评论 -
关于冒泡算法的那些事儿
排序算法的复杂度关于冒泡算法你了解多少:首先我们规定数据如下5 8 6 3 9 1 1 7在对数组进行冒泡排序的前提下,首先求出数组是否为空方法一:如果数组是用vector定义的,即:vector nums;//或vector& nums;,则这样写:if nums.size() == 0:return false方法二:如果数组是这样定义的,即:int ...原创 2020-05-05 12:44:58 · 259 阅读 · 0 评论 -
蓝桥杯 村庄户户通电问题
问题描述 2015年,全中国实现了户户通电。作为一名电力建设者,小明正在帮助一带一路上的国家通电。 这一次,小明要帮助 n 个村庄通电,其中 1 号村庄正好可以建立一个发电站,所发的电足够所有村庄使用。 现在,这 n 个村庄之间都没有电线相连,小明主要要做的是架设电线连接这些村庄,使得所有村庄都直接或间接的与发电站相通。 小明测量了所有村庄的位置(坐标)和高度,如果要连接两个村庄,...原创 2020-04-18 16:17:14 · 442 阅读 · 0 评论 -
scanf函数居然有返回值?
学了一年的c语言,今天才知道scanf函数有返回值#include <iostream>#include <math.h> using namespace std;int main(){ int x; if(scanf("%d",&x)==1) printf("nice");return 0;}...原创 2020-04-15 16:42:24 · 140 阅读 · 0 评论 -
三个整数排序(有几种方法)
今天有点累,直接贴个图吧第一种方法,不全面的方法第二种方法 完善版第三种方法 借用变量第四种方法 类似于前边交换两个值的方法原创 2020-04-15 16:01:22 · 2305 阅读 · 0 评论 -
再回首 回文字符串
如果单单只是为了求回文字符串的个数那么代码如下,很好理解最终max 值就是,但是本文要求的是要把全部的回文字符串输出来,这个代码如下,具体我已加注释,还不懂可以评论区留言或私聊//最长回文串#include <stdio.h>#include <string.h>#include <ctype.h>#define MAXN 500char b...原创 2020-04-13 19:49:18 · 124 阅读 · 0 评论 -
蓝桥杯 16进制转八进制
本来这道题的话我两分钟写完,用了几句话可是提交了却发生了错误详情如下,原因我猜是没有达到它的要求进行进制转换才不成功的#include <iostream>using namespace std;int main(){int n,a[10],i;cin>>n;for(i=0;i<n;i++){ cin>>hex>>a[i]...原创 2020-04-09 22:20:50 · 218 阅读 · 0 评论 -
力扣中第11题盛水最多的容器
提交了好几遍没过,最后写完美了,说我超了时间限制,力扣真是麻烦啊看看别人写的代码int maxArea(int* height, int heightSize){ int i = 0, j = heightSize - 1, maxarea = 0; while(i < j){ maxarea = fmax(maxarea, fmin(height[i]...原创 2020-04-08 22:08:59 · 210 阅读 · 0 评论 -
删除排序数组中的重复项(快慢指针法)
题目来源于力扣int removeDuplicates(int* a, int numsSize){ int i,j=0; if(numsSize==0) return 0; for(i=1;i<numsSize;i++) { if(a[i]!=a[i-1]) { a[++j]=a[i]; } ...原创 2020-04-08 20:32:22 · 288 阅读 · 0 评论 -
移动零
来自LeetCode一道题,把数组中含有 0的位置全部移到最后边,但是其他数字的相对位置保持不变,条件 不允许开辟新的数组,尽可能少的增加变量,代码如下#include <iostream>using namespace std;int main(){ int a[5]={1,3,0,0,5}; int i,j=0; for(i=0;i<5;i++) { ...原创 2020-04-08 19:19:58 · 158 阅读 · 0 评论 -
关于分析时间复杂度的一道题
来源于知乎,感谢原作者描写的很详细:原文地址记住一点 数列一直是连续的数字第一种算法 时间复杂度为 O(n^3)推导公式原文也有#include <iostream>using namespace std;int a[10000150];int main(){ int n,M; int ansMax=0,ansi,ansj; cin>>n>...转载 2020-04-08 10:30:04 · 221 阅读 · 0 评论