- 博客(246)
- 资源 (5)
- 收藏
- 关注
原创 小和问题求解
小和问题题目:在一个数组中,每一个数左边比当前数小的数累加起来,叫做这个数组的小和。举例:1 3 4 2 5小和为:1 + (1 + 3) + 1 + (1 + 3 + 4 + 2) = 16代码实现普通的暴力破解为:N + N-1+ N-2 + N-3 + ···+ 1 时间复杂度为:O(N^2)借助归并排序可以实现时间复杂度为:O(N*logN)归并排序详解package LeetCode;/** * @Description: * @ProjectNmae: gitTes
2021-08-28 00:16:04
860
原创 十大排序算法之归并排序
归并排序本文采用Java书写选择排序,其他语言类似可以借鉴着写思想1(正着想):将一个大的无序数组有序,我们可以把大的数组等分成两个,然后对这两个数组分别进行排序,之后在把这两个数组合并成一个有序的数组。思想2(反着想):待排序的n个元素,可以看作n个待合并的有序序列,每个序列只有一个元素。每次将两个相邻的序列合并为一个大的有序序列,重复合并过程直到剩下一个序列。两种其实核心思想是一样的只是理解不同。效果图:算法的复杂度和稳定性稳定性:归并排序值相等时不交换,因此具有稳定性复杂度:可
2021-08-27 23:33:05
710
原创 Master公式(计算递归复杂度)
Master公式在计算涉及递归的算法的时候,计算复杂度就会变得有些麻烦。Master公式就是用来进行剖析递归行为和递归行为时间复杂度的估算的Master公式:T(N) = a*T(N/b) + O(N^d)公式解释:n表示问题的规模,a表示递归的次数也就是生成的子问题数,N/b表示子问题的规模。O(N^d)表示除了递归操作以外其余操作的复杂度结论(证明省略):①当d<logb a时,时间复杂度为O(N^(logb a))②当d=logb a时,时间复杂度为O((N^d)*logN)③当
2021-08-27 22:33:08
5749
3
原创 十大排序算法之插入排序
插入排序本文采用Java书写选择排序,其他语言类似可以借鉴着写思想:由简单到复杂,多个数进行排序,我们可以考虑一个数,两个数慢慢增加进行排序。先排好N个数,让N+1个数跟前面N个数,从后往前进行比较,小于前面的数据则交换,直到前面没有数据或者大于等于前面的数据停止。效果图:下面效果图可形象表现出插入排序的过程。算法的复杂度和稳定性稳定性:插入排序值相等时不交换,因此具有稳定性复杂度:这里仅说明时间复杂度为:O(N^2)代码实现/** * @Description: 插入排序
2021-08-26 18:28:58
570
原创 十大排序算法之选择排序(内含动态流程图)
选择排序本文采用Java书写选择排序,其他语言类似可以借鉴着写思想:从待测数据中找到最小(大)值放在左端,然后再从剩下的待测数据中依次重复执行此操作。每次都选择最小的元素,确定个元素的位置。因此被称为选择排序。效果图:下面效果图可形象表现出选择排序的过程。算法的复杂度和稳定性稳定性:选择排序值相等时不交换,因此具有稳定性复杂度:这里仅说明时间复杂度为:O(N^2)代码实现/** * @Description: 选择排序 * @ProjectNmae: gitTest
2021-08-26 18:13:19
914
原创 十大排序算法之冒泡排序
冒泡排序本文采用Java书写冒泡排序,其他语言类似可以借鉴着写思想:冒泡排序的思想是相邻的元素两两比较,较小(大)的数下沉,较大(小)的数冒起来,这样一趟比较下来,最大(小)值就会排列在一端。整个过程如同气泡冒起,因此被称作冒泡排序效果图:下图可以很形象的表现冒泡排序的过程算法复杂度和稳定性稳定性:冒泡排序值相等时不交换,因此具有稳定性复杂度:这里仅仅来说明时间复杂度为:O(N^2)代码实现/** * @Description: 冒泡排序 * @PackageNa
2021-08-26 18:00:03
605
原创 随机生成测试数据
随机生成测试数据本文适用Java语言,但是其他语言思路类似可以借鉴随机生成一个最大长度与最大值确定的数组public static int[] generateRandomArray(int maxSize, int maxValue){ int len = (int)((maxSize + 1) * Math.random());//随机长度 int[] arr = new int[len]; for (int i = 0; i < len; i++) {
2021-08-26 17:19:35
352
原创 提取一个二进制位最右侧的1
提取一个二进制位最右侧的1看左神的视频做个小记录,提取一个数最右侧的1借助一下题目:给你一个整数数组,里面只有两个数是出现奇数次,其余均出现偶数次,提取出这两个给数字public static int[] function(int[] arr){ int eor1 = 0, eor2 = 0; for (int i:arr) eor1 ^= i; int rightOne = eor1 & (~eor1 + 1); for (int i
2021-08-26 16:02:34
793
原创 力扣——两数之和
力扣——两数之和题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums = [3,2,4], target = 6输出:[1,2]题解class Solution { public int[] twoSum(int[] nums, int targe
2021-08-26 15:38:52
173
原创 客户信息管理系统——Java
客户信息管理系统——Java该系统没有涉及文件及数据库,适合刚接触java的新手进行练习。模拟实现基于文本界面的客户软件管理系统。能够实现基本增删改查操作以及类的使用文件排布如下图:源代码CustomerUtility.javapackage CustomerInfomationManagement;import java.util.Scanner;/** * @Description: 作为工具类使用,将功能封装为方法,直接通过方法调用。无需重复实现细节 * @Proje
2021-08-24 22:41:06
2796
10
原创 Jupyter notebook快捷操作
Jupyter notebook快捷操作一开始学数据分析对于Jupyter notebook的快捷操作有些不熟悉,特此总结。一来便于自己忘记时查阅,二来也可以帮助同样有需要的靓仔Shift+Enter:运行本行,选中下一单元。没有则新键一个单元Ctrl+Enter:运行本行Y:单元转入代码状态M:单元转入Markdown状态A:在上方插入单元B:在下方插入单元X:剪切选中的单元C:复制选中的单元V:粘贴到下方单元DD:连按两次D,删除选中单元Tab:代码补全或者缩进Ctrl+/:
2021-08-19 23:35:31
254
1
原创 IDEA如何生成UML类图
IDEA如何生成UML类图很多学习Java的人都可以根据UML类图写出对应的代码。但是有时要让你根据代码写UML类图就会觉得异常麻烦当然网上有很多帮助你写UML类图的软件,不过咱们使用IDEA的伙伴不用那么麻烦的。IDEA自带生成UML类图的功能源代码:package Account;/** * @Description: * @ProjectNmae: gitTest * @PackageName: Account * @ClassName: Account * @Author
2021-08-19 19:34:43
30342
4
原创 IDEA快速生成构造器(构造函数)
IDEA快速生成构造器Java里面的构造器和是C++里面的构造函数极其类似话不多说,直接上干货。如果生成位置不理想可以看小tips哦0x0 效果图0x1 自己创建一个类第一步自己创建一个类,并且写上属性。如下0x2 右击点击Generate右击点击Generate 或者也可以按快捷键 Alt + Insert0x3 选择Constructor0x4 选择参数选择你想要的构造器需要参数, 按住Ctrl 键点击即可。最后点击OK0x5 生成代码看结果吧小tips大家注
2021-08-19 18:58:06
40208
7
原创 IDEA如何生成get和set方法
IDEA如何生成get和set方法最近在看Java视频,发现老师用的是eclipse,在类中写好属性之后,可以快速生成get和set方法。作为IDEA的使用者,我想IDEA不会这么low吧,所以自觉进行了百度。发现IDEA也是有自动生成的方法如下0X0 效果图0X1 自己创建一个类第一步自己创建一个类,并且写上属性。如下:0X2 选中属性选中我们需要get set方法的属性,如下:0X3 点击Generate右击点击Generate or 也可以用快捷键Alt+Insert来实现
2021-08-19 18:38:00
10704
3
原创 IDEA配置git环境
IDEA配置git环境昨天写了一下Pycharm配置git环境几天顺便将IDEA的git配置也写一下。其实和Pycharm有些类似。默认各位老铁都已经安装好了,Git咯,并且有自己的github网址或者gitee网站咯话不多说下面给大家上操作。0X1 创建一个新项目第一步当然是创建一个新项目了,或者你不想创建也可以。我习惯创建一个新的项目用来做git。不想创建可以将此步省略相信大多数人都会自己创建新的项目,这里我就不赘述了0X2 匹配GitFile -> Settings -&g
2021-08-18 15:04:02
567
原创 Pycharm配置git环境
Pycharm配置git环境在网上查了一些发现都已经过时了,有的根本没办法用,自己摸索了一下午。捣鼓的差不多了至少可以用hhhh默认各位老铁都已经安装好了,Git咯,并且有自己的github网址或者gitee网站咯0X1 创建一个新项目首先新键一个新的项目,直接creat就好了创建好了如下:0X2 匹配GitFile -> Settings -> Version Control -> Git详情如下:找到Setting,点击进入找到Version Control,
2021-08-17 22:42:48
8947
1
原创 英文输入间距变大
英文输入间距变大前几天碰到一个很奇怪的问题,使用微软自带输入法输入英文之间间距突然变大,不知道怎么的过几天就没事了,也就没有放在心上没想到又碰到了。其实影响不大,就是写Markdown时贼恶心。百度查找了一下,发现是英文全角和半角的区别解决方法方法一:右击任务栏的输入法的位置,找到全角与半角切换的位置方法二:shift+空格我都尝试过,不过shift+空格有时不管用,推荐第一种哈,其他的输入法也可以类比的...
2021-08-17 18:05:58
1338
原创 JavaBean简介
JavaBean简介JavaBean是Java语言写成的可重用组件所谓JavaBean,是指符合如下标准的Java类类是公共的有一个无参的公共的构造器有属性,且有对应的get、set方法用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他的JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴功能,而不用关心任何改
2021-08-17 17:58:42
188
原创 IEDA快速书写代码快捷键
IEDA快速书写代码快捷键public static void main(String[] args){}:psvm+EnterSystem.out.println();:for(int i = 0; i < n; i++){}:
2021-08-17 11:40:19
197
原创 IDEA查看Java源码
IDEA查看Java源码有时我们需要查看Java源码,总是去查看Java文档可能太过麻烦,下面介绍两种方法来快速查看源码方法一:Ctrl+Alt+B查阅源码将光标移动到想要查看的函数或者接口,按下Ctrl+Alt+B即可转跳至定义处,也就可以查看源码方法二:Ctrl+鼠标点击相比于第一种方法,我更喜欢第二种。想要查看某个方法或者接口,按住Ctrl键并且点击想要查看的函数或者接口即可效果图...
2021-08-17 11:31:11
12671
4
原创 一行代码画爱心
一行代码画爱心这也许就是数学和代码的浪漫原理就是卡文迪许的心形函数心形线的平面直角坐标系方程表达式分别为 :x2+y2+ax=asqrt(x2+y2)x2+y2-ax=asqrt(x2+y2)print('\n'.join([''.join([('love'[(x-y)%len('love')]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in
2021-08-13 20:23:36
1313
原创 Java实现螺旋矩阵
螺旋矩阵:螺旋矩阵是指一个呈螺旋状的矩阵,它的数字由第一行开始到右边不断变大,向下变大,向左变大,向上变大,如此循环。如下:下面的代码可以作为参考,大家自己写的可以输入: 1,1; 1,2; 3,5; 5,3 ;5,5进行验证一下,还是有一些小细节需要注意的源代码(借助label)public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("请.
2021-08-11 14:28:02
1150
原创 Java实现杨辉三角
Java实现杨辉三角杨辉三角:如下图所示,每一行除了第一个和最后一个,每一个都是上一行相邻两个之和源代码如下:public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.print("请输入你需要多少层杨辉三角:"); int n = scan.nextInt(); int[][] arr = new int[n][]; for (
2021-08-10 17:35:56
374
原创 Intel Optane(tm) Memory Pinning 无法加载DLL“iaStorAfsServiceApi.dll“:找不到指定模块。(异常来自HRESULT:0x8007007E)
Intel Optane™ Memory Pinning 无法加载DLL“iaStorAfsServiceApi.dll“:找不到指定模块。(异常来自HRESULT:0x8007007E)前一阵子,手动清理电脑垃圾。后面更新了window10,也不知道哪里出了问题,动不动弹出来这个玩意孩子当场裂开以为自己将电脑给搞裂开了,百度找到了解决方法如下:解决方法按 window键,或者点击菜单键一样的,点击设置然后点击应用搜索Intel, 找到第二个箭头指向的应用点击,然后点击修改跳出这个
2021-08-10 12:35:56
773
1
原创 Java 求100以内的质数(素数)
Java 求100以内的质数(素数)质数:除了1 和本身以外没有其他因数的正整数方法一利用sqrt 和 break优化算法public static void main(String[] args) { boolean primeJudge; for(int i = 2; i < 100; i++) { primeJudge=true; for(int j = 2; j <= Math.sqrt(i); j++){ //利用
2021-08-09 23:41:22
5155
1
原创 Java寻找最大公约数
Java寻找最大公约数利用欧几里得除法可以很容易的到的循环实现 public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); int n = scan.nextInt(); int temp, ans; while (true){ temp = m % n; if(temp==0
2021-08-09 23:34:23
285
原创 Java实现99乘法表
Java实现99乘法表99乘法表大家都不陌生,如何用java实现呢请看下面直接给大家上代码了public static void main(String[] args) { for (int i = 1; i < 10; i++) { for (int j = 1; j < i + 1; j++) { System.out.print(i + " x " + j + " = " + i * j + "\t");
2021-08-09 23:26:34
326
原创 求 1000 以内的完数
求 1000 以内的完数完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。例如:6 = 1 + 2 +3源代码如下:/** * @ClassName: wanshu * @Author: Y_peak * @Date: 2021/08/09/23:19 */public class wanshu { //1000以内所有的完数 public static void
2021-08-09 23:24:14
379
原创 家庭记账软件 —— Java
《家庭记账软件》模拟是实现一个基于文本界面的《家庭记账软件》该程序是全网最全Java零基础入门教程的项目一,可以直接查看p127掌握逐步的编程技巧和调试技巧主要涉及以下知识点:变量的定义基本数据类型的使用循环语句分支语句方法声明、调用和返回值的接收简单的屏幕输出格式话不多说直接上代码源代码Utility.javaimport java.util.Scanner;/** * @ClassName: Utility * @Author: Y_peak *
2021-08-09 20:42:58
252
原创 党在心中(turtle画图)
党在心中import turtleturtle.speed(100)def border(): turtle.fillcolor("red") turtle.pencolor("red") turtle.up() turtle.goto(-400, 300) turtle.down() turtle.begin_fill() for i in range(2): turtle.forward(800) turtle
2021-08-08 23:16:28
652
原创 python基础入门(Peak带你学python)
基础语法知识print函数python里面的输出函数,可以输出数字、字符串、以及含有运算符的表达式,可以将内容输出到显示器或者文件#输出到显示器print(500)print(98.5)print('500')print('我会python输出啦')print('aa','abc') #不换行输出print(3+1)#输出到文件fp = open('D:/text.txt','a+') #a表示以读写的方式打开文件,+表示可以追加不清除原有的print('我python可以在文件里面
2021-07-15 23:46:33
2067
7
原创 LintCode刷起来(一)
LintCode刷起来(一)1. A + B 问题方法一:class Solution: """ @param a: An integer @param b: An integer @return: The sum of a and b """ def aplusb(self, a, b): # write your code here return a + b方法二:class Solution:
2021-07-15 00:22:49
1015
原创 中缀表达式转换为后缀表达式
中缀表达式转换为后缀表达式三种方法:借助堆栈:1. 如果是数字直接输出。 2. 如果是")",依次输出站内元素,只到输出"("。3. 如果是"(" 以及其他"+" 、"-" 、"*" 、"/"操作符。则与栈顶元素进行比较优先级;若前者较小,则连续出栈输出,直到前者大于后者,停止出栈。再将该操作符入栈。优先级大小:如图构造二叉树,后序输出:将表达式从左到右构造二叉树,"(" 与 ")"省略加括号法:再不改变表达式结构的情况下尽可能多的增加括号,直至不能增加,然后从外向内依次将操作符提出
2021-06-13 15:17:58
338
原创 1976年,提出公钥密码体制概念的学者
1976年,提出公钥密码体制概念的学者1976年,提出公钥密码体制概念的学者是Diffie和Hellman
2021-06-13 10:31:51
3669
原创 唯密文攻击、已知明文攻击、选择密文攻击、选择明文攻击(密码分析学中,四大攻击方式)
唯密文攻击、已知明文攻击、选择密文攻击、选择明文攻击(密码分析学中,四大攻击方式)唯密文攻击:唯密文攻击是假定密码分析者拥有密码算法及明文统计特性,并截获一个或多个用同一密钥加密的密文,通过对这些密文进行分析求出明文或密钥。 在实施唯密文攻击时,只有充分掌握和利用明文信息如文字、图像、语音、计算机程序等的内在规律,才有可能根据截获的密文成功破译密码。唯密文攻击已知条件最少。经不起唯密文攻击的密码被认为是 不安全的。你可以理解为:已知密文的穷举攻击,也仅知道密文已知明文攻击:已知明文攻击指攻击者掌握了某
2021-06-13 10:28:29
19739
原创 图的基本运算及智能交通中的最佳路径选择问题
图的基本运算及智能交通中的最佳路径选择问题完成邻接矩阵的初始化、撤销和边的搜索、插入、删除等操作#include <stdio.h>#include <stdlib.h>#define ERROR 0#define OK 1#define Overflow 2 //表示上溢#define Underflow 3 //表示下溢#define NotPresent 4 //表示元素不存在#define Duplicate 5 //表示
2021-05-22 18:41:34
1823
4
原创 SHA1算法实现及详解
SHA1算法实现及详解SHA1算法详解SHA1算法是Hash算法的一种。SHA1算法的最大输入长度小于2^64比特的消息,输入消息(**明文**)以512比特的分组为单位处理,输出160比特的消息摘要(**密文**)源代码#include <stdio.h>#include <stdlib.h>#include <string.h>#pragma warning(disable:4996)/*定义用到的常量*/unsigned int A = 0x6
2021-05-18 20:11:27
28363
4
原创 解决VS2017使用scanf报错问题
解决VS2017使用scanf报错问题当然也可以解决其他版本的scanf报错问题。总之要求使用scanf_s不允许使用scanf都可以解决解决方法:添加一个宏定义 #pragma warning(disable:4996)
2021-05-15 14:02:10
344
原创 [BUUCTF-pwn]——picoctf_2018_buffer overflow 0
[BUUCTF-pwn]——picoctf_2018_buffer overflow 0好久不写BUU了,手都快生了赶快过来写写。通过观察源文件发现,首先有put函数不需要去libc中找,同时argv肯定大于1,也就是需要至少两个参数,才可以到else语句,同时vuln函数的参数是第二个参数。进入vuln函数内部看看,找到strcpy函数这个函数是一个典型的可以用来利用溢出的函数。所以我们可以在这里进行栈溢出,以此调用puts函数打印flag.因为flag在bss段上。from pwn imp
2021-04-28 17:34:56
566
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅