09 2020 档案
摘要:方法: 利用快慢指针,慢指针的步长设置为1,快指针的步长设置为2,这样的话,在快指针到达链表尽头的同时,慢指针也刚好到达链表的中点位置。
阅读全文
摘要:问题: 给定一个长度为n的整形数组,元素均大于0;以其中任意两个作为隔板,且位置不变;如何使水的容积最大?设计算法,说明时间、空间复杂度。 代码: int water(int a[], int n) { int m = 0, tmp; // m 存储最大值,作为最后的结果 int i = 0, j
阅读全文
摘要:问题描述: 问题地址:https://leetcode-cn.com/problems/container-with-most-water/ 代码: public int maxArea(int[] height) { if (height.length <= 1) { return -1; } i
阅读全文
摘要:这一节讲解的是二叉查找树,书中这一页有一个地方让我比较疑惑,原文是: “如果向一棵预先排序的树输入数据,那么一连串Insert操作将花费二次时间,而链表实现的代价会非常巨大,因为此时的树将只由那些没有左儿子的节点组成。” 这里为什么是花费二次时间,这就是我的疑惑点,然后在知乎找到了答案。该回答简单理
阅读全文
摘要:简单的迭代法: int sqrt(int N) { for (int i = 1; i <= N / 2; i++) { if(i * i == N ) { return i; } if (i * i < N && (i + 1) * (i + 1) > N) { return i; } } } 折
阅读全文
摘要:在编程中(其实我是在阅读《Java编程思想》的过程中),我们常常可以看到这个变量名——Foo,然后在百度找了一下这个的全写,记录一下: Foo:function object oriented,即面向对象函数。 foo经常和bar搭配(为啥我看到的是var?),其中,bar的全写是beyond al
阅读全文
摘要:/** * Return the {@link FragmentActivity} this fragment is currently associated with. * May return {@code null} if the fragment is associated with a {
阅读全文
摘要:这里只讨论 LayoutInflater1 的 infalte() 方法。 inflate(int resource, ViewGroup root, boolean attachToRoot); 第一个参数xml布局资源索引,第二个参数指的是加载布局的root。 attachToRoot为true
阅读全文
摘要:代码示例: ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.hide(); }
阅读全文
摘要:假设我们要在main布局中引入标题栏,我们只需要在activity_main布局文件中使用语句: <include layout="@layout/title" /> 完整布局文件: title.xml <?xml version="1.0" encoding="utf-8"?> <LinearLa
阅读全文
摘要:在阅读《第一行代码》的LitePal部分时,发现一个问题,就是在建立实体类时列名是遵循驼峰命名的,但是在sqlite中查看建表语句时发现驼峰命名转化成列名会直接全部转换成小写字母,而不是转成下划线格式,但是 Mybatis 中是有开启驼峰映射这一选项的,于是去翻LitePal的文档,翻了半天没有但是
阅读全文
摘要:在阅读《第一行代码》的LitePal这一节时,注意到要能够正常使用LitePal,我们必须在AndroidManifest.xml中配置如下内容: <application android:name="org.litepal.LitePalApplication" ...> ... </applic
阅读全文
摘要:git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。 拷贝项目命令格式如下: git clone [url] 使用示例: 到 github 随便找一个项目并复制其 url 打开一个文件夹,并在该处打开git bash 然后执行命令 克隆好了之后,在当前目录下就会生成
阅读全文
摘要:原文章地址 和配置java的maven依赖库类似,这个也是改配置文件就好了 配置方法 1、对特定项目有效,在项目中的 build.gradle 中修改内容 buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/
阅读全文
摘要:java 原生动态代理源码的理解,卡在了java8新特性lambda表达式那里
阅读全文
摘要:#include<stdio.h> #include<stdlib.h> #include<time.h> using namespace std; int main() { clock_t start_time, end_time; double duration; start=clock();/
阅读全文
摘要:我们来看官方文档: boolean retainAll(Collection<?> c) Retains only the elements in this set that are contained in the specified collection (optional operation
阅读全文
摘要:问题描述 平面上画有间隔为d 的等距平行线,向平面任意投掷一枚长为 l 的针,求针与平行线相交的概率. 解: 以 \(x\) 表示针的中点与最近一条平行线的距离。又以 \(\varphi\) 表示针与此直线间的交角。易知样本空间 \(\Omega\) 满足: $$0 \leq x \leq \fra
阅读全文
摘要:本问题用到的公式 条件概率公式和乘法公式: \(P(A|B) = \displaystyle\frac{P(AB)}{P(B)}\) \(\Rightarrow\) \(P(AB) = P(B)P(AB)\) \(P(AB) = P(A)P(B|A)\) 全概率公式: 设 \(A_1, A_2, .
阅读全文
摘要:1、条件概率公式 \(P(A|B) = \displaystyle\frac{P(AB)}{P(B)}\) 推论 \(\Rightarrow\) $$1、P(A \cup B | C) = P(A|C) + P(B|C) - P(AB|C)$$ 若 A 与 B 互不相容,则 $$2、P(A \cup
阅读全文
摘要:课本上只给了队列的数组实现,关于链表实现的留做了作业,现实现如下: queueli.h typedef int ElementType; /* START: fig3_57.txt */ #ifndef _Queueli_h #define _Queueli_h struct Node; struc
阅读全文
摘要:1、三重循环暴力求解 例程: int MaxSubsequenceSum(const int A[], int N) { int ThisSum, MaxSum, i, j, k; MaxSum = 0; for(int i = 0; i < N; i++) for(int j = i; j < N
阅读全文
摘要:public String replaceAll(String replacement) Replaces every subsequence of the input sequence that matches the pattern with the given replacement str
阅读全文
摘要:问题描述: 春天里,校园的草坪上有一对情侣,女孩希望男孩送给她一个花环,于是扯了6根花草,握在手中上下两端分别露出6个头和尾,让男孩将将上下两端的6个头任意两两相接, 6个尾任意两两相接.求男孩能结成一个花环的概率. 解: 6个头两两相接(无论如何接)将构成3根草,然后连接6个尾:实际上相当于6个元
阅读全文
摘要:1、随机事件与样本空间及关系和运算 1.1、样本空间 样本空间 \(\Omega\) : E 的所有可能结果为元素构成的集合 样本点 : \(\Omega\) 中的元素,即试验的一个基本结果 其中,试验的特征为: 试验可以在相同的条件下重复进行 试验的结果可能不止一个,但试验前知道所有可能的全部结果
阅读全文
摘要:具体来说,其实不是变大,就是不缩小分子和分母的字体大小 具体方法,将行内公式尺寸强制调整为行间公式尺寸: \displaystyle{\frac{2}{n}} 效果: \(f(x) = \displaystyle{\frac{2}{n}}\) 原来的效果: \(f(x) = \frac{2}{n}\
阅读全文
摘要:问题描述 设随机事件 A,B,C 满足 \(P(A) = P(B) = P(C) = \frac{1}{4}, \ P(AB) = 0, \ P(AC) = P(BC) = \frac{1}{12}\),求 A,B,C 恰有一个发生的概率. 分析: A,B,C 三个事件恰好有一个发生 \(\Left
阅读全文
摘要:1、Big O 需要定义算法的时间复杂度 不必非常精确 通常只需要了解其上界,相对简单 定义 \(f(n) = O(g(n)), \ if \ \exists \ c > 0:c * g(n) \geq f(n)\) \(f(n) = \Omega (g(n)), \ if \ \exists \
阅读全文
摘要:1、接口与工厂 接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是 工厂方法 设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法(类似于Factory.build()),而该工厂对象将生成接口的某个实现的对象。理论上,通过这种方式,我们的代码将完全与接口的实现分离,这就
阅读全文
摘要:静态初始化器,又叫静态初始化块,是 Java 类的显式的静态初始化。Java 允许将多个静态初始化动作组织成一个特殊的“静态子句”(有时也叫“静态块”)。其语法描述就是由 static 修饰的一对花括号 "" 括起来的语句组。与其他静态初始化动作一样,这段代码仅执行一次:当首次生成这个类的一个对象时
阅读全文
摘要:复杂度 名称 例子 O(1) 常数 A[0], A[10000], 2 + 3, 2 * 3 O(\(\log N\)) 对数 折半查找 O(N) 线性 文件下载、无序查找 O(\(N^2\)) 二次型 插入排序 O(\(N^k\)) 多项式 矩阵乘法 O($2^n$) 指数 三色图、蛋白质折叠 O
阅读全文
摘要:queue.h typedef int ElementType; /* START: fig3_57.txt */ #ifndef _Queue_h #define _Queue_h struct QueueRecord; typedef struct QueueRecord *Queue; int
阅读全文
摘要:stackar.h typedef int ElementType; /* START: fig3_45.txt */ #ifndef _Stack_h #define _Stack_h struct StackRecord; typedef struct StackRecord *Stack; i
阅读全文
摘要:stackli.h typedef int ElementType; /* START: fig3_39.txt */ #ifndef _Stack_h #define _Stack_h struct Node; typedef struct Node *PtrToNode; typedef Ptr
阅读全文
摘要:clock_t clock(void) 返回程序执行起(一般为程序开头),处理器时钟所使用的时间。 其中,clock_t 是一个长整型,它是一个适合存储处理器时间的类型。 clock() 的实际意义是指“进程启动到调用clock()函数经过了多少CPU时钟计时单元”,借助 CLOCKS_PER_SE
阅读全文
摘要:前言:前段时间跟着B站的一个课程学习并手敲了一个博客网站,现在时间空下来了,就整理一下笔记,就当是复习一遍吧。 整体项目梳理 1、项目介绍 个人博客功能 2、技术组合 后端:Springboot + JPA + thymeleaf模板 数据库 mysql 5.7.29 前端UI:Sementic U
阅读全文
摘要:1、利用黄金比例生成每一段螺线半径的版本: import turtle from random import random def draw_square(r): turtle.fillcolor(random(), random(), random()) # random()函数返回0到1之间的随
阅读全文
摘要:Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。 public String toString() { StringBuilder result = new StringBuilder("{"); for(
阅读全文
摘要:见教材P42 cursor.h typedef int ElementType; #define SpaceSize 100 /* START: fig3_28.txt */ // 链表游标实现的声明 #ifndef _Cursor_H #define _Cursor_H typedef int P
阅读全文
摘要:在阅读书中示例代码的过程中,发现一个被弃用的方法 newInstance() 替代方法:getDeclatedConstructor().newInstance() //: typeinfo/toys/ToyTest.java // Testing class Class. package com.
阅读全文
摘要:组是用括号划分的正则表达式,可以根据组的编号来引用整个组。组号为0表示整个表达式,组号为1表示被第一对括号括起的组,依次类推。因此,在下面这个表达式, A(B(C))D 中有三个组,组0是 ABCD ,组1是 BC ,组2是 C 。 使用示例: //: strings/Groups.java imp
阅读全文
摘要:boolean matches() boolean lookingAt() boolean find() boolean find(int start) matches()方法用来判断整个输入字符串是否匹配正则表达式模式 lookingAt()用来判断该字符串(不必是整个字符串)的起始部分是否能够匹
阅读全文
摘要:CharSequence来自java.lang包 在书中的介绍: 接口CharSequence从CharBuffer、String、StringBuffer、StringBuilder类中抽象出了字符序列的一般化定义: interface CharSequence { CharAt(int i);
阅读全文
摘要:问题和解答: 我认为解题的关键点是C 和 D 的转化求并集。
阅读全文
摘要:问题:n个人、n顶帽子,任意取,至少一个人拿对自己帽子的概率. 记 $A_i = $ “第 \(i\) 个人拿对自己的帽子”,\(i = 1,...,n.\) 求 \(P(A_1 \bigcup A_2 \bigcup ...... \bigcup A_n)\), 不可用对立事件. 用加法公式: \
阅读全文
摘要:特征值分解 \(x^2 - x - 1 = 0\) 移项,除以x,求x的非零解 \(x = 1 + \frac{1}{x}, x = 1 + \frac{1}{1 + \frac{1}{1 + ...}}\) 迭代 \(x_{n + 1} = 1 + \frac{1}{x_n}\) \(x_0 =
阅读全文
摘要:数列描述: \(F_0 = 0, F_1 = 1, F_n = F_{n - 1} + F_{n - 2}\) 图形表示: 递归实现 int fib(int n) { if (1 == n || 2 == n) return 1; return fib(n - 1) + fib(n - 2); }
阅读全文
摘要:foreach语句可以用于数组或其他任何Iterable,但是这并不意味着数组肯定也是一个Iterable,而任何自动包装类也不会自动发生: //: holding/ArrayIsNotIterable.java import java.util.*; public class ArrayIsNot
阅读全文
摘要:求证:欧几里得算法(也叫辗转相除法),即: gcd(a, b) = gcd(b, a mod b) 证明: 前提公式: \(\left . \begin{array}{lcr} a = md \\ b = \ nd \\ m、n互质 \end{array} \right\} \Leftrightar
阅读全文
摘要:? 表示不确定的类型,一般用在通配。 jdk为了便于理解,用K表示键,V表示值,T表示type类型,E表示enum枚举,其实这四个都只是符号,都是表示泛型名称。换成其他字母都没关系,但是都要在之前声明。 参考:CSDN的一篇文章 更新: 通配符是Java泛型的一部分。通配符就是“?”,表示“任何事物
阅读全文
摘要:书中代码: //: holding/SimpleIteration.java import typeinfo.pets.*; import java.util.*; public class SimpleIteration { public static void main(String[] arg
阅读全文
摘要:只含一个参数 public static void shuffle(List<?> list) 使用默认的随机性源随机排列指定的列表。所有排列发生的可能性几乎相等。 两个参数 public static void shuffle(List<?> list, Random rnd) 使用指定的随机
阅读全文
摘要://: holding/ListFeatures.java import typeinfo.pets.*; import java.util.*; import static net.mindview.util.Print.*; public class ListFeatures { public
阅读全文
摘要:Arrays.asList()方法接受一个数组或者是一个用逗号分隔的元素列表(可以使用可变参数),并将其转换成一个List对象。 用法示例: //: holding/AddingGroups.java // Adding groups of elements to Collection object
阅读全文
摘要:fatal.h #include <stdio.h> #include <stdlib.h> #define Error( Str ) FatalError( Str ) #define FatalError( Str ) fprintf( stderr, "%s\n", Str ), exit(
阅读全文
摘要:因为在网上很多地方找都没有找到合适的,有的要收费,有的是伪装的垃圾软件下载,所以就到github上再找,结果还真的找到了,所以分享出来,希望大家少走弯路。 百度网盘链接: 链接:https://pan.baidu.com/s/18ClB3pxHxe8evr7OwLjAEQ 提取码:poob 文件预览
阅读全文
摘要:以下是完整实现(配合教材使用更佳,教材见文章的标签): list.h typedef int ElementType; /* START: fig3_6.txt */ #ifndef _List_H #define _List_H struct Node; // 使用结构体构造了节点 typedef
阅读全文
摘要:简单来讲,typedef的作用就是给某些类型定义别名,和#define类似,但是比#define更加灵活。 这里我暂时只遇到了两个使用场景: 第一处,定义普通数据类型 typedef int ElementType; // 所以包含这个语句的C文件中ElementType就代表了int 第二处,定义
阅读全文
摘要:#ifndef _List_H #define _List_H struct Node; typedef struct Node *PtrToNode; typedef PtrToNode List; typedef PtrToNode Position; List MakeEmpty( List
阅读全文
摘要:CREATE DATABASE `test`; USE `test`; # 如果数据库已经存在,就将其删除 DROP TABLE IF EXISTS `person`; CREATE TABLE `person` ( `id` INT NOT NULL AUTO_INCREMENT COMMENT
阅读全文
摘要:1、某本书上的解释 例程:例程是某个系统对外提供的功能接口或服务的集合,如操作系统的API,例程的作用类似于函数。 2、百度百科上的解释 例程的作用类似于函数,但含义更为丰富一些。例程是某个系统对外提供的功能接口或服务的集合。比如操作系统的API、服务等就是例程;Delphi或C++Builder提
阅读全文
摘要:C语言代码: int MaxSubsequenceSum(const int A[], int N) { int ThisSum, MaxSum, j; ThisSum = MaxSum = 0; for (j = 0; j < N; j++) { ThisSum += A[j]; if (This
阅读全文
摘要:1、创建springboot项目 这里暂时先只勾选MySQL Driver和lombok,后面的mybatis依赖文件再在pom文件中添加。 然后更改maven仓库的路径: 这样,初始项目就搭建好了。 2、添加必要的pom依赖 引入mybatis和jdbc的依赖 <!-- https://mvnre
阅读全文
摘要:1、下面的控制温室的类的父类-->Controller类 这是一个基类 // The reusable framework for control systems. package com.chapter10.controller; import java.util.*; public class
阅读全文
摘要:问题: 即,证明:$12 + 22 + 32 + ... + n2 = \frac{n(n + 1)(2n + 1)}{6}$ 下面就用踢三角方法来证明: 首先,左面的式子可以写成下面三角形中所有数的总和: 然后,把这个三角形踢一脚,就变成了: 然后,再踢一脚: 此时,把三块石板放在一起: 我们把三
阅读全文
摘要:问题代码: ThreeHanoi = [] ThreeHanoi[1] = 1 问题原因:没有定义列表的大小,就直接进行对索引位置的区域赋值,很当然地,就出现了越界问题。 解决方法 使用append函数。 官方文档解释: 这样就相当于一个可变数组了,或者说java中地List。本来还想使用inser
阅读全文
摘要:方法:反证法 假设 \(\sqrt{2}\) 是有理数,则 \(\exists p, q \in I\),使 \(\sqrt{2} = \frac{p}{q}\) 取一对互质的$p, q, p2 = 2q2, p$是偶数 由于$q2 = \frac{p2}{2}, q$也是偶数,继而推出矛盾 注:1
阅读全文
摘要:问题:n刀最多把pizza切成几块? 分析:其实还是递推思想,比如两刀可以切成4块,那么下一刀,也就是第三刀,肯定是要和前两刀的每一刀线都要相交,这样才能保证切成足够多的块数,这样一来,就会多出 4 个交点(包括与圆的边界的焦点),也就会多出 3 个小块,原因时是每相邻的两个点就会确定一个多出的小块
阅读全文
摘要:和三个柱子的最初的汉诺塔很类似,只是多了一个柱子,相当于缓存区大了一些,处理的速度自然快了一些。 粗略的C代码(并没有使先移动到第四根柱子上面的圆盘的数量是最优): #include <stdio.h> int count = 0; void hanoi (char s, char t1, char
阅读全文
摘要:1、遇到的情景 int MaxSubsequenceSum(const int A[], int N) { int ThisSum, MaxSum, j; ThisSum = MaxSum = 0; for(j = 0; j < N; j++) { ThisSum += A[j]; if(ThisS
阅读全文
摘要:简略说明:中间的小正方形的面积:\((b - a)^2\),而四个三角形的面积为$4\times\frac{1}{2}ab=2ab$,所以,\((b-a)^2 + 2ab = c^2\),即:\(a^2 + b^2 = c^2\)
阅读全文
摘要:简略说明:右上角的那个正方形的对角线沿着这个正方形的左上角的边往下拉,看绿色的虚线,这样就构造了一个面积是该正方形的一半的三角形,然后绕着最大的正方形的右上角的顶点逆时针旋转90°,得到蓝边三角形,然后将这个三角形的左上角的顶点拉到它投射在下面的正方形的边上的点,这样,就构造了黄边的三角形,同样地,
阅读全文
摘要:分析:假设我们在A柱子上有8个圆盘需要移动到C柱子上面,那么利用递归思想,我们只需要先将上面的7个圆盘移动到B柱子上,然后将最底下的圆盘移动到C柱子上,再将B柱子上的圆盘移动到C柱子上,此时,A盘已经空着了,就变成了辅助柱子。 具体代码: #include <stdio.h> void HanoiT
阅读全文
摘要:题目地址:https://leetcode-cn.com/problems/hanota-lcci/submissions/ 题目描述: 分析:假设我们在A柱子上有8个圆盘需要移动到C柱子上面,那么利用递归思想,我们只需要先将上面的7个圆盘移动到B柱子上,然后将最底下的圆盘移动到C柱子上,再将B柱子
阅读全文
摘要:结论:[-2147483648, 2147483647],也是:[-231, 231 - 1]
阅读全文
摘要:unsigned int或unsigned只用于非负值的场合。这种类型与有符号类型表示的范围不同。例如,16位unsigned int允许的取值范围是0~65535(这里包括边界,下同),而不是-32768~32767(这个是16位的int的范围)。用于表示正负号的位现在用于表示另一个二进制位,所以
阅读全文
摘要:CharBuffer是java.nio包下的一个类,作用是可以操作字符缓冲区。 暂时只需要用到append(char)这个方法: 书中用到的地方: //: interfaces/RandomWords.java // Implementing an interface to conform to a
阅读全文
摘要:问题描述:单位地砖的规格是1×2,铺地砖的区域是2×n,求一共有多少种铺法。 分析:找出基准情形和递推关系 基准情形:f(1) = 1, f(2) = 2 (即横着铺和竖着铺) 递推关系:f(n) = f(n - 1) + f(n - 2) 根据递推关系,写出C语言代码: #include <std
阅读全文
摘要:问题:这是课堂上提到的一个简略版,就是简单地求一下移动n片铜片要移动多少下。 分析:找递推关系,T(8) = 2T(7) + 1 解释:移动8个铜片,需要先将上面的7个铜片移到B柱子上,然后把A最底下的铜片移动到C柱子上面,此时,那7个铜片还需要再移到C柱子上面,故T(7)要乘以2 根据递推公式,可
阅读全文
摘要:取而代之的是valueOf方法: 参考:JDK13 API文档 https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Long.html
阅读全文
摘要:要完整地描述一个方法,需要指出方法名以及参数类型,这叫做方法的签名(signature)。例如,String类有4个称为indexOf的公有方法。它们的签名是: indexOf(int) indexOf(int, int) indexOf(String) indexOf(String, int) 返
阅读全文
摘要:通过继承来扩展接口 举例: interface Monster { void menace(); } interface DangerousMonster extends Monster { void destroy(); } interface Lethal { void kill(); } cl
阅读全文
摘要:1、概览 表达关系的UML符号(UML notation for class relationships) 注:这里缺少了组合关系。 2、详解 2.1、泛化(Generalization),在Java里表现为继承(Inheritance)(“is-a”) 2.2、实现(Interface imple
阅读全文
摘要:一句话概括: 子类覆盖父类方法,返回类型可以是,父类返回类型的子类。 举例: class Processor { public String name() { return getClass().getSimpleName(); } Object process(Object input) { re
阅读全文
摘要:后端在controller中用model存入数据 这里是将一个Blog的类存入键为"blog"的键值对中 @GetMapping("/blog/{id}") public String blog(@PathVariable Long id, Model model) { model.addAttri
阅读全文
摘要:
阅读全文
摘要:按照图中的第一条提示,就可以查看面板的地址、用户名和密码。
阅读全文
摘要:1、查看所有数据库 show databases; 2、使用某一个数据库 use database; # database是数据库的名字 3、查看数据库中的表 show tables;
阅读全文
摘要:记录现在的拦截器的写法: 首先,写一个拦截器: package com.fan.interceptor; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import javax.servlet.ht
阅读全文
摘要:前要:搭建博客项目用到。 1、代码块(片段)表达式语法 th:replace:将代码块片段整个替换使用了th:replace的HTML标签中 "~{templatename::selector}" Includes the fragment resulting from applying the s
阅读全文
摘要:如上图,打开设置,然后找到这个设置页面,找到 Do not indent children of 这一栏,把想要自动缩进的标签给从这个输入框里面去掉即可。 点开之后,默认是这样: 然后把我们希望恢复缩进的标签从这里面去掉即可。 (indent:缩进)
阅读全文