提交 e4d0fc5d authored 作者: 黄夏豪's avatar 黄夏豪

黄夏豪的笔记 第一次上传

上级 563dade1
# 如何在Idea中建立一个springBoot项目
New->Projecy->SpringInitializr
界面如下
![image.png](https://upload-images.jianshu.io/upload_images/20563271-225492d3f22b5ddc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
选择合适的JDK版本
![image.png](https://upload-images.jianshu.io/upload_images/20563271-b9b9ccf3b141fc17.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
选择需要的组件
![image.png](https://upload-images.jianshu.io/upload_images/20563271-ee825e4304721c8e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
配置数据库等属性
![image.png](https://upload-images.jianshu.io/upload_images/20563271-6049317223897b4b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
写一个测试接口
![image.png](https://upload-images.jianshu.io/upload_images/20563271-87c987bf129486f6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
[图片上传中...(image.png-732cc3-1586742398811-0)]
运行main方法启动
![image.png](https://upload-images.jianshu.io/upload_images/20563271-9707a77926b3041e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
# Git中merge和rebase的区别
在git中假如对两条分支进行merge命令,git会取两条分支的最后一个commit与两条分支中的最后一个公共分支进行合并
![Git合并示例图](./images/img 5.jpg)
rebase变基的命令,会将当前分支重新设置开始点.即将当前分支的提交 放入 被rebase的分支的后方.
![Git合并示例图](./images/img 6.jpg)
git:一个分布式项目版本控制工具
分布式基本原理:通过 remote add <origin> <url> 为本地仓库和远程仓库建立联系通过pull和push命令进行推送和更新
分布式粗糙流程图,如下:
![GIT分布式粗糙流程图](./images/img 2.jpg)
Git版本快照存储方式,如下:
![GIT版本快照存储方式](./images/img 3.jpg)
Git远程上传合并机制流程图,如下:
![Git远程上传合并机制流程图](./images/img 4.jpg)
在git中可用通过为一个项目绑定多个远程分支,实现在本地分支进行push时可以同时向多个远程分支同时推送代码。
为项目添加一个远程分支
```
git remote add origin <url>
```
为项目添加第二个远程分支
```
git remote set-url --add origin <url>
```
添加完之后,再进行push时就会同时向多个远程分支提交代码了
\ No newline at end of file
# 两数之和
题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。`printf()`
`给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
`
题目解法:
- 通过哈希表进行计算
```java
public static int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int complement = target - nums[i];
if (map.containsKey(complement) ) {
return new int[] { map.get(complement),i };
}
map.put(nums[i],i);
}
throw new IllegalArgumentException("数据错误");
}
```
该题利用了hashmap查询速度快且Key不能重复的特性,在对数组遍历的时候可以利用containsKey方法判断数组中是否存在目标数字,假如存在则 返回结果。
# 1. 为什么要使用SSH的方式连接GIT
- 当我们向远程GIT进行PUSH/PULL时,需要输入远程GIT的用户名和密码,若为本地GIT和远程GIT配置一个SSH密钥,即可以进行免密操作
# 2. 如何在本地生成远程密码
- 使用 ``` ssh-keygen -t rsa -C "your.email@example.com" -b 4096 ``` 在本地生成一个新的密钥
# 3. 如何本地密钥
windows
``` type %userprofile%\.ssh\id_rsa.pub ```
Linux
``` cat ~/.ssh/id_rsa.pub ```
# 4. 为远程GIT添加SSH密钥
以GITLAB为例
![8F8IE$WCLQ2UORIA~LJC5C.jpg](https://upload-images.jianshu.io/upload_images/20563271-8fbacfd292d71f0b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在右侧框中贴入步骤三中获取到得本地密钥,点击Add key 添加
语言编译器和解释器
例如:Java,kotlin,scala, clojure
上面列举的语言均属于半编译半解释型语言,通过编译器进行编译后,由JVM进行运行,通过JVM对底层的操作系统进行交互。
![半编译半解释型语言简图](./images/img
1.png)
\ No newline at end of file
# 能装多少水的循环和双指针解法
### 题目
给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
输入垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49
如图所示
![题目示例图](./images/img 7.jpg)
解题思路1:对数组进行两层嵌套循环,计算出每两个线所能表示的最大面积,设置一个临时变量MaxArea对最大面积进行保存,每次计算出来的面积与MaxArea进行比对,其中取较大值为MaxArea赋值.
```java
//通过循环的方式进行运算
public static int maxArea(int[] height) {
if (height.length < 2) {
return 0;
}
int maxArea = 0;
for (int i = 0; i < height.length; i++) {
for (int j = i+1; j < height.length; j++) {
maxArea = Math.max((j-i)*Math.min(height[j],height[i]),maxArea);
}
}
return maxArea;
}
```
第一次循环示例
![第一次循环示例](./images/img 8.jpg)
第二次循环示例
![第二次循环示例](./images/img 9.jpg)
最大面积示例
![最大面积示例](./images/img 10.jpg)
解题思路2:通过在数组的头和尾建立两个指针,并且建立变量MaxArea对计算出最大面积进行保存.每次循环对两枚指针所能代表的区域进行面积计算,对每次计算出的面积与最大面积进行比对,每次比对则保留较大的数值,计算完毕后将所代表数字较小的指针向内移动一位,直至两枚指针相遇.
```java
// 通过双指针向内夹进的方式进行运算
public static int maxArea(int[] height) {
if (height.length < 2) {
return 0;
}
int left = 0;
int right = height.length-1;
int maxArea = 0;
while (left<right){
maxArea = Math.max((right-left)*Math.min(height[left], height[right]),maxArea);
if (height[left] < height[right]) {
left++;
}else {
right--;
}
}
return maxArea;
}
```
第一次循环示例图
![最大面积示例](./images/img 11.jpg)
第二次循环示例图
![最大面积示例](./images/img 12.jpg)
第三次循环示例
![最大面积示例](./images/img 13.jpg)
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论