--每周分享--

2024-05-13 23:20
文章标签 分享 每周

本文主要是介绍--每周分享--,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、三数之和:15. 三数之和 - 力扣(LeetCode)

public class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> result = new ArrayList<>();//判断极限条件:长度不够直接返回空集合;if (nums == null || nums.length < 3) {return result;}// 对数组进行排序Arrays.sort(nums);
​int right = nums.length - 1;int mid;//设置left,mid,right三个指针,最外层要求left和right至少差2for (int left = 0; left < right - 1; left++) {// 跳过相同的元素,直到left跳到第一个不重复的元素if (left > 0 && nums[left] == nums[left - 1]) continue; right = nums.length - 1;mid = left + 1;//mid始终在left后面//内层循环:要求mid==right时进入下一次外层循环(一次内循环结束)while (mid < right) {long sum = (long)(nums[left] + nums[mid] + nums[right]);if (sum == 0) {result.add(Arrays.asList(nums[left], nums[mid], nums[right]));// 相等后再向后走一定不符合了,先让mid(mid更小)跳过相同的元素while (mid < right && nums[mid] == nums[mid + 1]) mid++;while (mid < right && nums[right] == nums[right - 1]) right--;//上面的操作只是让mid和right移动到最后一个重复出现过的元素处//mid再加一位,right再减一位,就能到达第一个不重复的元素mid++;right--;} else if (sum < 0) {mid++;} else {right--;}}}return result;}
}

二、github回滚操作

  1. 方法介绍:1)回退 2)回做
  2. 方法一:git reset

    原理就是:修改head的位置,即将HEAD指向的位置改变为之前存在的某个版本,head就是指向当前版本的指针

    特点:回退到历史某一版本,该版本之后的版本全部丢弃

    步骤:

    1. 使用git log查看版本号

    git log
    1. 使用“git reset --hard 目标版本号”命令将版本回退。 举例我要回退到9feb83df6db8b132004325ab03377b2088cba540这个提交的版本:

    git reset --hard 9feb83df6db8b132004325ab03377b2088cba540
    1. 回退完之后可用git log再检验当前版本。

使用“git push -f”提交更改:

git push -f

因为我们回退后的本地库HEAD指向的版本比远程库的要旧,此时如果用“git push”会报错。如下:(-f强制)

改为使用 git push -f 即可完成回退后的提交。

方法二:git revert

特点:版本回滚后,保留该版本之后的版本。适用场景:例如某需求先后进行过第一、第二、第三次版本提交之后发现第二个版本有问题,需要撤销第二个版本的操作,同时保留第三次版本的提交,可使用git revert操作。

git log
查看之前的操作历史,找到要还原的commit,例如。
git revert -n + 版本号(commit之后的一串字符)

执行命令即可恢复某次提交

注意:如果撤销的是merge操作则需要提供 -m 参数,-m选项后面应该跟着一个数字,表示要撤销的提交的父提交的索引。通常情况下,使用-m 1表示选择第一个父提交,-m 2表示选择第二个父提交,以此类推。 例如:

git revert e2fa3afa69b1021a89203c4e70d28e52c9cfd6fa -m 1

但是方法二,使用 git revert 来撤销合并提交会创建一个新的合并操作的逆操作,它可能会引入一些复杂的历史状态,所以更推荐使用第一种方法,但是第二种方法在特定情况下可以谨慎使用。

这篇关于--每周分享--的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/987098

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4