- 博客(21)
- 资源 (26)
- 问答 (1)
- 收藏
- 关注
原创 一直CRUD,简历该怎么写亮点
最近和一些小伙伴聊的时候,发现很多人即使工作很久了,也没有勇气show简历,因为感觉没有亮点。根据自己的一些学习情况和自己的经历,总结了几个貌似值得打造成亮点的地方,供参考:1.将对接第三方、文件导出成Excel,pdf等功能整理成一个抽象模块。大部分人都干过对接第三方服务的工作,即使接入腾讯云、阿里云等工作也算。想一下,如果你接入一个,只能根据人家的要求来一步步接入,如果接入两家、三家甚至更多的时候呢?这时候就需要一些设计在里面了。例如可以使用适配器模式来将不同厂家的不同接口统一起来,可以使用模板..
2021-08-18 23:05:20 2089
原创 Django中如何实现静态文件缓存到云服务中
一般与页面有关的系统都会有大量的静态文件,包括js、css以及图标图片等,这些文件一般是项目的相对路径,在加载的时候会从本地读取再转发出去。由于这类文件一般比较大,导致接口响应变长,但是这些文件一般很少改动,所以非常适合通过Nginx或者云服务来缓存。一般云服务与cdn无缝集成,能够更快下发到客户端。我们后台系统很多使用的是基于python的Django框架,该怎么来实现静态文件缓存呢?这个过程简单的让人惊讶,但是开始一直搞不清楚关系,前前后后耽误了不少时间。1.collectstatic命令首
2021-08-17 12:43:40 359
原创 算法肝了100篇了
学习完涨薪班的课之后,我深深的感觉到我们需要的大部分技能都不是可以训练出来的,而有很多事情如果不做,就永远不可能做。等等再说,只是借口。等了再久也是一样。所以从6月14号开始,我决定每天一篇 ,将算法基本过一遍,差不多就是在国庆之前完成100篇算法文章。开始我是自己开了个公众号,每天推一个,可以保证工作和学习的基本平衡。但是很快就发现公众号有几个硬伤:1.推了之后就不能修改了。我现在这一轮只是为了自己将算法学清楚,很多题目我看懂就不想再花太多时间整理文字、图示什么的,所以很多表述和图都是从其他地方拷贝过
2021-08-03 10:19:25 207 1
原创 程序员专属浪漫:如何用java代码画❤️
有位小伙伴说,看到一个帖子,一个计算机博士接亲时,要求现场写代码,5分钟做出一个爱心。我们就看看如何用java设计出心形的代码。我找了一下,发现方法竟然很多,我们就来见识一下,最后我们看一下如何用简单的java代码实现一个心。一.❤️的数学背景据说,心形线起源于法国的笛卡尔,他曾认识一位瑞典小公国的公主克里斯汀,并成为了公主的数学老师,并渐渐产生爱慕之心,但是被国王阻止了(想象一段狗血的剧情)。笛卡尔被迫流放回法国,对公主日夜思念便写信,但是又怕被人看到,于是就想到了用数学公式画心形线来表白心迹
2021-08-03 09:49:42 41178 37
原创 位图4:进制转换
这个问题本身不是进制题,但是是利用了进制的思想。给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数。 M是32位整数,2<=N<=16. 思路: 这个题目的思路不难,但是想写正确却很不容易,关键问题在于超过10进制之后如何准确映射,这会有大量的if 判断,如果一个个定义,会出现了写了一坨,结果越写越乱的情况。另外还需要对结果进行一次转置,还需要判断负号,是非常考验编程功底的题。为此采取三个措施: 一个是定义大小为16的数组F,保存的是2到16的各个值对应的标记,这样赋
2021-08-03 09:35:02 136
原创 位图3:缺失数字
从0,1,2,...,n这n+1个数中选择n个数,找出这n个数中缺失的那个数,要求O(n)尽可能小。1.位运算求解题中的意思就是从数字[0,n]之间的n+1个数字少了一个,而其他的数字都存在。如果我们把这个数组添加从0~n的n+1个元素,就变成了数组中只有一个数出现了一次,其他数字都出现了2次,让我们求这个只出现一次的数字。这题使用位运算是最容易解决的,关于位运算有下面几个规律:1^1=0;1^0=1;0^1=1;0^0=0;也就说0和1异或的时候相同的异或结果为0,不同..
2021-08-03 09:32:06 144
原创 位图2:汉明距离
这个也是非常经典的位图的题,先看要求:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。范围是:0 ≤ x, y < 2^31.示例:输入: x = 1, y = 4 ,输出为2解释:1 (0001)4 (0100)可以看到1的位置分别是1和3,所以汉明距离为2:x和y都转化为二进制的时候,在相同的位置上如果值都一样,他们的汉明距离就是0。如 果在相同的位置上值不一样,有多少个不一样的位置,那么
2021-08-03 09:28:06 171
原创 位图1:位1的个数
位运算也是很重要的一个算法方向,在计算机里也是大量遇到相关问题。特别是在涉及到大数据场景下的表示、搜索和压缩存储等,位图是不可或缺的方法。而异或和位运算几乎是天生的一对,联合起来能解决很多看似复杂的问题。不过呢,如果不专门研究一下位运算的话,可能面试官提示你用位运算来解决,你也不知道该怎么办。所以学一学还是很有必要的。我们现在先看几个例子吧。求位1的个数这个题目可以很简单,也可以深入到直接怀疑人生,我们就逐步递进分析这个主题。这个问题非常重要,是理解大部分位图问题的钥匙,我们这里给出7种解法
2021-08-03 09:25:31 356
原创 字符串:几个常见问题
1.字符串介绍字符串不是一种数据结构,但是因为其特殊性,其题目需要一些额外的处理策略,比如字符串的匹配,反转等都需要特别考虑。另外字符串有一些基础的工具类,如果我们熟悉的话,可以直接用,反之会特别麻烦。例如如果我们知道StringTokenizer类,那在很多单词拆分,组合等问题上可以非常轻松处理。再比如StringBuffer的charAt()方法,如果不知道的话,解题会寸步难行。字符串的内容其实非常多的,涉及的题目有的很简单,有的特别难。比较难的题目主要体现在两个方面,一个是匹配相关的问题,暴力
2021-08-03 09:15:25 345
原创 数字问题7:股票问题
在LeetCode中有好几道股票的问题,我们后面学习动态规划还是再分析,现在先用基本的方法试一试。1.买卖股票的最佳时机假设你有一个数组,其中第i个元素是股票在第i 天的价格。 你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。 这个是有点难度的, 可以使用暴力法比较直接,贪心法比较好一些。 为啥可以用贪心呢?因为买必须在卖之前,因此每到一步都可以获取到这一步为止的最佳状态,不断这个最佳状态即可。class Solution { /
2021-08-02 22:56:39 473
原创 数字问题6:大数加法
这个在很多算法教材里会有,一起来看一下。以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。 (字符串长度不大于100000,保证字符串仅由’0’~'9’这10种字符组成) 可以直接使用BigInt 使用BigInt就能省去很多麻烦: public String solve (String s, String t) { BigInteger bigInteger1 = new BigInteger(s); BigInteger bigIntege
2021-08-02 22:51:40 169
原创 数字问题5:将字符串转换为整数
这个也是非常经典的题,难度不大,但是难道一片。主要扣分点就是各类边界和异常情况考虑不周全。先看题目:实现函数 atoi 。函数的功能为将字符串转化为整数 提示:仔细思考所有可能的输入情况。这个问题没有给出输入的限制,你需要自己考虑所有可能的情况。按照题中的要求做就行了,总共分为3步 (1)先去掉字符串两边的空格 (2)然后判断符号 (3)最后读取数字。 public int atoi (String str) { str = str.trim();//去掉前后的空格
2021-08-02 22:48:47 292
原创 数字问题4:在两个长度相等的数组中找上位数
给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。 上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n/2个数 [要求] 时间复杂度为O(logN)O(logN),额外空间复杂度为O(1)O(1) 例如:输入[1,2,3,4],[3,4,5,6],输出 3。总共有8个数,上中位数是第4小的数,所以返回3。这个题目也是非常典型的二分法的变形题。在B站有个视频讲解:https://www.bilibili.com/video
2021-08-02 22:47:05 306
原创 数字问题2:最大公约数
这个是最经典的数字的问题,在很多地方都能见到这个题目求出两个数的最大公约数,如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。第一种思路是根据最大公约数的定义,辗转相除法,从比较小的整数开始,向下–,直到找到满足要求的整数,如果都不满足,就返回1. 这样做的运算量比较大,效率比较低,更高效一点的是更相减损术。1. 辗转相除法 public int gcd (int a,
2021-08-02 22:44:31 230
原创 数字问题1:寻找峰值
数字、字符串和位图本身不是一种数据结构,但是由于其本身的特殊性,产生了很多专门针对其特征的算法,例如字符串的匹配算法等,这些既是面试容易考察的问题,也是平时开发会遇到的问题。因此我们从现在开始整理一些常见的数字、字符串和位图与异或的题目。1.题目解释山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。 假设 nums[-1] = nums[n] = -∞。注意审题,是索引最大,而不是值最大,
2021-08-02 22:41:40 259
原创 排序8:位图排序
位图排序也称为bitmap排序,它主要用于海量数据去重和海量数据排序,假如说有10 亿个int类型且全部不相同的数据,给1G内存让你排序,你怎么排,如果全部加载到内 存中,相当于40亿个字节,大概约等于4G内存。所以全部加载到内存肯定不行,如果我 们使用位图排序的话,我们用long类型表示,一个long占用8个字节也就是64位,所以 如果我们使用位图排序的话只会占用约0.125G内存,内存占用大大减少。但位图排序有 个缺点就是数据不能有重复的,如果有重复的会覆盖掉,这也是位图能在海量数据中去 重的原因,我们
2021-08-02 22:34:23 611
原创 排序7:希尔排序
希尔排序也成缩小增量排序,原理是将待排序列划分为若干组,每组都是不连续的,有 间隔step,step可以自己定,但间隔step最后的值一定是1,也就说最后一步是前后两 两比较。间隔为step的默认划分为一组,先在每一组内进行排序,以使整个序列基本有 序,然后再减小间隔step的值,重新分组再排序......不断重复,直到间隔step小于1则停 止。还是先看代码public static void shellSort1(int[] array) { int length = array.
2021-08-02 22:34:02 371
原创 排序6:基数排序
基数排序的方式可以采用最低位优先LSD(Least sgnificant digital)法或最高位优先 MSD(Most sgnificant digital)法,LSD的排序方式由键值的最右边开始,而MSD 则相反,由键值的最左边开始。我们这里使用LSD法,原理就是一个数组我们首先根据 他的个位进行排序,然后在根据十位,百位......,这里最多排到多少位是根据他的最大 值确定的,如果最大值有千位,我们必须要计算到千位,如果最多只有十位,我们就计 算到十位就可以了,每一位都排序完了之后,数组也就排序成功
2021-08-02 22:31:13 107
原创 排序5:桶排序
桶排序是将数组分散到有限的桶中,然后每个桶再分别排序,而每个桶的排序又可以使 用其他排序方式进行排序,可以是桶排序也可以是其他排序。桶的大小可以随便定,如 果桶的数量足够多就会变成我们后面介绍的计数排序,其实我们完全可以把桶固定在一 个数量,根据数组的大小来确定,也可以自己定,比如3个或者5个7个等,桶的大小确 定之后,下一步就需要把数组中的值一一存放到桶里,小的值就会放到前面的桶里,大 的值就会放到后面的桶里,中间的值就会放到中间的桶里,然后再分别对每个桶进行单 独排序,最后再把所有桶的数据都合并到一起就
2021-08-02 22:29:55 129
原创 排序4:堆排序HeapSort
堆结构就是将一颗完全二叉树映射到数组中的一种存储方式heapInsert和heapify 大根堆最重要的两个操作就是heapInsert和heapify,前者是当一个元素加入到大根堆时应该自底向上与其父结点比较,若大于父结点则交换;后者是当堆中某个结点的数值发生变化时,应不断向下与其孩子结点中的最大值比较,若小于则交换。下面是对应的代码://判断该结点与父结点的大小,大结点一直往,建立大根堆 public static void heapInsert(int[] arr,int inde
2021-08-02 22:24:46 153
原创 排序3:归并排序MergeSort
归并不一定考,但是归并的编程方式是一定要熟练的, 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。归并排序是稳定排序,它也是一种十分高效的排序,能利用完全二叉树特性的排序一般性能都不会太差。java中Arrays.sort()采用了一种名为TimSort的排序算法,就是归并排序的优化版
2021-08-02 21:11:29 126 1
mysql-connector-c++-8.0.23-macos10.15-x86-64bit.dmg
2021-05-10
live555.chm帮助文档
2016-09-09
QtFtp源代码
2016-07-19
qt5使用curl实现文件下载的示例程序
2016-06-20
64位win7系统下安装USB下载器驱动FriendlyArm-usb-dnw-driver
2016-02-02
ffmpeg-2.0.tar.bz2 linux源代码
2014-05-02
vlc -1.1.7.tar.bz2 linux版源代码
2014-05-02
深度学习基础教程
2014-04-10
Geoffrey Hinton 深度学习 培训材料
2014-04-10
Handbook of Face Recognition 李子青-人脸识别技术
2014-04-10
为什么java中使用移位会出错
2022-01-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人