- 博客(31)
- 收藏
- 关注
原创 自用_基于MongoDB的用户信息列表案例
用户信息案例1:创建项目(npm init -y+安装mongoose)2:于app.js中建服务器(实现客户端与服务器端的通信)主:将用户信息和表格HTML进行拼接并将拼接结果响应回客户端3:于app.js中连数据库(创建用户集合,向集合中插入文档)/list查询列表1)/add添加用户 表单页面2)/modify修改页面3)/delete删除用户完整源代码(app.js+model(index.js+user.js))+静态模板文件(add,list)app.jsaddlist1:创建项目(npm i
2022-04-24 13:59:01 2138
原创 自用MongoDB
MongoDB1:如何连接Mongodb数据库2:集合规则+创建集合(new mongoose.Scheme({})+mongoose.model('name',集合规则))3:插入文件+创建数据项(new 集合({})+ 集合.create({}))4:条件查询例子5:删除文档6:更新文档7:集合联合查询8:在catch中的错误信息附:User测试:1:如何连接Mongodb数据库const mongoose = require('mongoose');mongoose.connect('mong
2022-04-24 08:34:23 169
原创 【JS案例】图片跟随鼠标指针移动
原理:前提:图片的采用绝对定位(即:position:absolute)为窗口对象window绑定鼠标移动事件,利用事件处理函数中的反馈对象来获得位置信息,利用这个信息再改变图片位置效果: 就是鼠标到哪图片到哪<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=
2022-03-04 11:40:29 621
原创 【案例】输入框的默认提示(初级)
实现原理:绑定文本输入框两个事件,聚焦事件和失焦事件,不同事件下展现不同内容实现效果:没获得焦点时:获得焦点时:Code:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport"
2022-03-04 11:13:10 510
原创 【案例】显示隐藏密码明文
实现原理:当点击眼睛,完成改眼睛的类名修改,输入框的类型;类名的修改将展现不同的图标;实现效果:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=d
2022-03-04 10:52:00 171
原创 求两个数的最大公约数【辗转相除法|欧几里得算法】
public int gcd(int m,int n){ return n==0 ? m:gcd(n,m%n);}m = qn + r,q为m除以n的商,r为m除以n的余数,则有,m和n的最大公约数为n和r的公约数。
2022-02-05 08:55:40 277
原创 《指南》x Java1. 用一个栈实现另一个栈的排序
【题目】一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?输入:55 8 4 3 6输出:8 6 5 4 3其实这题的排序方法,不值得推荐。但是也是一种排序的方法,提供了一种思想;指定这个辅助栈有排序的神奇功能,主栈把所有数给他,实现就是:传来的数,分两种情况,很大,就沉下去,不大,就浮在上面;要实现沉下就得先吐还(用 stack.push(help.pop()))import java
2021-12-26 22:13:33 156
原创 《指南》x Golang 1. 在行列都排好序的矩阵中找指定的数
【题目】给定一个N×M的整型矩阵matrix和一个整数K,matrix的每一行和每一列都是排好序的。实现一个函数,判断K是否在matrix中。例如:如果K为7,返回true;如果K为6,返回false。【要求】时间复杂度为O(N+M),额外空间复杂度为O(1)在这里最关键的一个特殊点是,他的每一行都是有序的可以以此判断“当我K太小,只有两条方向可走路,往上或者往左,当我K太大,只有两条方向可走路,往下或者往右”,这里考虑是当K和二维数据内部数据走的情况,每一次都有两条路可以走,而只有当我们的起点
2021-12-25 11:07:12 331
原创 JDBC一般模板
package cn.kgc.dao;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.sql.Timestamp;public.
2021-09-20 11:36:23 72
原创 【坚持】Leetcode《剑指offer》学习计划Day02
剑指 Offer 06. 从尾到头打印链表class Solution { public int[] reversePrint(ListNode head) { Stack<ListNode> s = new Stack<ListNode>(); while(head!=null){ s.push(head); head = head.next; } int s
2021-08-26 08:29:09 195
原创 【坚持】Leetcode《剑指offer》学习计划Day01
剑指 Offer 09. 用两个栈实现队列这道题,对答案有点困惑,为啥要当辅助栈的数据煤油了,才进行主栈传入数据?class CQueue { Deque<Integer> s1; Deque<Integer> s2; public CQueue() { s1 = new LinkedList<Integer>();//LinkedList来做Stack的容器,因为LinkedList实现了Deque接口,所以
2021-08-25 17:40:30 284
原创 二进制拼法
给定一个函数f,可以让1-5的数字等概率返回一个,请加工出1-7的数字等概率返回的一个函数g`public static f(){ return (int)(Math.radom()*5 + 1);}public static r01(){//实现了收聚,小于3的就变成了0,大于等于3的变成1 int res = 0; do{ res = f(); }while(res==3); return res < 3?0:1;}public static g(){//若想表示出1-7.
2021-08-22 10:24:37 200
原创 预处理技巧
使用情形:当你发现一些查询是频繁的(如一些遍历),我们尝试生成一个低成本的数据结构例题一:一个只由R和G组成的字符串,先要求一个字符串实现左边全是G,右边全是R,至少要染几次方法一:public static int minPaintTest(String s){ char []str = s.toCharArray(); int N = str.length; for(int i = 0;L<=N;L++){ if(L==0){统计str[0...N-1]共有多少G,全染成R}
2021-08-22 10:08:34 96
原创 一个在女程序猿面前装B的方法
简单描述一下原题:有N个苹果,只能用6和8的袋子装,而且只能是装满状态,问:最少共用几个袋子?成功全装返回总袋子数,不能用这些袋子实现装下则返回-1这是到有贪心思想的题,要用最少的袋子话,那么我们尽量多用8号袋子,在能装6并且能装8的这种“共倍数”情况,考虑的是8而不是6代码很简单:`public static int minBags(int apple){ if(apple < 0){return -1;} int bag6 = -1; int bag8 = apple/8; in.
2021-08-22 09:09:00 99
原创 最大覆盖点
给定一个有数组arr,代表数轴上从左到右有n个点arr[0],arr[1]…arr[n-1],给定一个长度为L的绳子求绳子最多能覆盖其中的几个点方法一:枚举二分法我们以绳子的右端点为参考对象,当右端点踩到第一个点时,数一下左边绳子范围里面有几个点,数的方法就是看有多少点的距离是大于等于左端点所表达的距离,通过这种方法可以保证有边不会套到不存在的点。public static int maxPoint(int []arr,int L){ int res = 1;//包含点一个起步 for(in.
2021-08-22 08:48:09 148
原创 为哑巴程序员准备的必知必会口语!
建议:每日操练20min,坚持31天后找我报喜第一阶段:1-11-21-31-41-51-61-71-81-92-12-22-32-42-52-62-72-82-92-102-112-12第二阶段3-13-23-33-43-53-63-73-83-93-10第三阶段5-15-25-35-45-5
2021-08-21 00:34:42 199
原创 【Kruskal算法】:)
适用范围:要求无向图1:用于生成“最小生成树”,2:最小生成树:保证点是连通的,整体的总权值是最小的算法描述:以边的角度出发,以次找出最小的边,排序好所有的边,以此拿着它,看它是否构成环,若不构成环则加入答案边集元素包装成集合public static class MySets{ public HashMap<Node,List<Node>> setMap;//一个注册表,每个节点对应一个集合 public MySets(List<Node> node.
2021-08-20 18:34:06 105
原创 【拓扑排序算法】+ 辅助记忆
适用范围:1.要求有向图2.有入度为0的节点(用来做起点)3.没有环常用于加载库和编译顺序辅助记忆两个空间,做记录找点,拿点试探public staic List<Node> sortedToPology(Graph graph){//传入图 HashMap<Node,Integer> inMap = new HashMap<>();//待定空间,某个点和对应的入度 Queue<Node> zeroInQueue = new Like.
2021-08-20 16:56:03 75
原创 【图】+【宽度】+【深度】+ 辅助记忆
图的最常用的存储方式1):邻接表法2):邻接矩阵法某些特殊情况3):数组1:其实无向图,不过就是一种拥有两个方向的有向图2:这构建图这种数据结构时,靠的是两个集合,“点集”和“边集”3:设计图的题都不是很难,但是他们的表达方法太多,写法是不同的,但是算法是一样的;也正因为如此,我们应该准备一个通用的熟悉模板,遇到特殊情形的转化成匹配模板的那种,且该模板需要表达所有的方法何谓邻接表法(表)以每一个点为单位,描述每一个点他们对应邻接着哪些点,即以点为单位(如果为有权图,则每一个对应的邻接.
2021-08-20 16:15:10 75
原创 个人资源分享【建议收藏,持续更新】
废话少说,直击正题超高效找计算机专业书籍的N大方法如何解决在浏览器中下载外网软件慢的方法摆脱“唧唧”下载B站视频的高速方法如何高效合并pdf文件如何破解自带密码的pdf文件Windows如何不用百度网盘svip做到下载20M/s<持续更新,以下问题下次补充>如何破解带有压缩密码的压缩包如何删除需要管理员权限的文件小福利分享:超高效找计算机专业书籍的N大方法1:阅读平台: 强力推荐去“微信阅读”上找,上面除了黑皮书系列基本上很齐全,基本上能解决我们70%的计算机专业书籍查找2:书籍网站:
2021-08-19 11:10:23 1214 1
原创 经典岛问题
问题描述:> 一个矩阵中只有0和1两种值,每一个位置都可以和自己的上下左右四个方向相连,如果有一片1连在一起,这个部分叫做岛,求一个矩阵有多少个岛?代码实现:public static int countIslands(int [][]m){ if(m==null||m[0]==null){ return 0; } int N = m.length;//行 int M = m[0].length;//列 int res = 0; for(int i = 0;i < N;.
2021-08-19 07:54:16 94
原创 一大【堆】
1.堆结构就是用数组实现的完全二叉树结构2.完全二叉树中如果每一颗子树的最小值/最大值在顶根处就是小根堆/大根堆3.堆的两个核心操作heapInsert和heapify4.优先队列结构,就是堆结构用数组形成的堆,利用索引完成比较实现根堆索引和节点的关系:当前索引: i左子节点:2 * i + 1右子节点:2 * i + 2父节点:(i - 1) / 2核心操作heapInsert和heapify的实现//以大根堆为例public static void heapInsert(in
2021-08-15 10:06:17 93
原创 Java如何实现【归并排序】?
盖言之: 整体就是一个简单递归,左边排序好,右边排序好,让其整体有序,让其整体有序是用外排序特点: 一种较快稳定的排序时间复杂度: O(N*logN),可用master公式计算空间复杂度: O(N),因为会用到一个help辅助空间稳定性: 稳定重要性: 很重要,必掌握编写难度: medium其他:归并排序快的原因:并没有浪费比较行为稳定性的原因:左区域优先(详情见注释)代码示梨:(注释有宝贝)public static void mergeSort(int []arr){
2021-08-12 11:33:59 90
原创 怎么用【master公式】求【递归行为的复杂度】?
前言master公式(又名“主方法”)是利用分治策略求解特定类型的递归的复杂度的一种技巧性方法,掌握它对于分析递归行为的复杂度很有帮助使用前提: 每一次递归划分的数据规模是否一样?公式的使用:每一次递归划分的数据规模相同有:T(N) = aT(N/b) + O(N^d)那么有:1:若log(b,a) > d,则复杂度为O(N^log(b,a))1:若log(b,a) = d,则复杂度为O(N^dlogN)1:若log(b,a) < d,则复杂度为O(N^d)书写版:
2021-08-12 10:25:01 279
原创 超好用的【对数器】怎么用?
对数器:核心思想:用一堆随机数测试,用绝对对的方法来验证你的方法作用:帮你测试代码是否实现成功不用再依赖OJ平台辛辛苦苦找题如何使用:1:写好你要测试的方法a 2:准备一个任意实现的方法b3:实现一个随机样本产生器4:随机样本都拿到方法中运行,匹配两者是否一致5:如果不一致,则打印样本进行人工干预改进方法a或方法b;6:当样本数量很多时比对测试依然正确,可以确定方法a正确补充知识:1:关于随机数Math.random();//[0,1)所有小数Math.random()
2021-08-12 09:29:31 130
原创 Java如何实现【打牌插入排序】?
插入排序(打牌排序):时间复杂度:O(N^2)空间复杂度:O(1)稳定性:稳定编写难度:easy辅助理解:想象出打牌,从左往右拿待比较牌,从右往左拿比较牌//升序public static void insertionSort(int []arr){ if(arr==null||arr.length<2){return ;} for(int i = 0;i<arr.length-1;i++){//从左往右拿牌,且 for(int j = i-1;j>=0&
2021-08-11 10:21:59 83
原创 利用【异或运算】技巧求解“奇偶次数题”
问题一:一个数组中有一种数,出现奇数次,其他的数全出现偶数次,问:如何找到这个与众不同的奇数次的数?解:其实利用异或运算是很容易求解的,由N^N = 0,可知“任意数和本身异或之后为0”,既然出现的是偶数次,那么那些出现偶数次的数可以拆为一对一对的,每一对相互异或就为0,最终可知:“把所有偶数次的数相互异或后为0”最后就剩下奇数次的数,而N^0 = N,即,任何一个数和0异或为本身,留下的奇数词的数和0异或之后还是自己。数学举例:数组:arr{1,1,1,2,2,3,3,3,3}1,1,1可看
2021-08-11 09:58:41 794
原创 Java如何实现【冒泡排序】?
冒泡排序:最基本的一种排序`时间复杂度:O(N^2)空间复杂度:O(1)编写难度:easy辅助理解:想象出一个天平public class BubbleSort(int []arr){ if(arr==null||arr.length < 2){ return ; } //第一种实现方法 for(int i = arr.length-1;i > 0;i--){// for(int j = 0;j<i;j++}{ if(arr[i]>arr[i+1]){
2021-08-11 08:48:15 87
原创 交换的进阶技巧(不使用第三变量)
技巧如下:a = a^b;b = a^b;a = a^b;功能:交换数据;优点:不加入第三变量,节省空间,简化代码,有b格;缺点:得考虑数据之间独立情况(大部分能用,毕竟变量之间不独立的特殊情况很少)前提:带交换的两个变量是独立的,假如有,相同异或之后归零导致错误,交换失败;补充:1:异或运算:本质上是“无进位相加”;口诀/结论:相同为0(xx^xx==0;)与0为己(xx^0 ==xx;)案例:...
2021-08-09 22:45:08 80
原创 Java如何实现前缀树(对于存少量字符,如:小写字母字符)
实现难度:easy建议:抄一遍,过程中注意我写的注释实现算法模板class Trie{//内部类一个节点类 class TrieNode{ TrieNode[] nexts = new TrieNode[26]; boolean last; int pass = 0;//用来记录通过节点的次数 int end = 0;//用来标记作为结尾节点的次数 } TrieNode root;//创建一个根节点
2021-08-08 22:31:06 101
原创 2021-07-12
今日计算机网路所学分享(关于计网传输层);1:传输层4大功能是进程之间的逻辑通信;(网络层是主机之间的逻辑通路)具有复用和分用功能;具有报文检测功能;两种协议:TCP与UDP复用:合并的感觉,所有进程都通过传输层到网络层。分用:分发的感觉,从网络层收到数据后交付指名的进程)TCP(靠谱):面向连接,使用数据完整,大文件UDP(不靠谱):不面向连接,适用低时延,小文件,比如:qq聊天2:寻址和端口此处的寻址是指找到主机中的进程;可通过端口(就是用来标记进程的)来寻址;端口号:只有本
2021-07-12 22:04:25 169 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人