当前位置: 首页 > news >正文

力扣解题汇总_JAVA

文章目录

  • 数学_简单
    • 13_罗马数字转整数
    • 66_ 加一
    • 9_回文数
    • 70_爬楼梯
    • 69_x的平方根
    • 509_斐波那契数列
    • 2235_两整数相加
    • 67_二进制求和
    • 415_字符串相加
    • 2413_最小偶倍数
    • 2469_温度转换
    • 704_二分查找(重点)
  • 数组_简单
    • 1_两数之和
    • 88_合并两个有序数组
  • 链表_简单
    • 21_合并两个有序链表
    • 203_移除链表元素
  • 字符串_简单
    • 125_验证回文串
  • 哈希表_简单
    • 169_多数元素
    • 242_有效的字母异位词
  • 双指针_简单
    • 28_找出字符串中第一个匹配项的下标
    • 344_反转字符串
  • 递归_简单
    • 206_反转链表
  • 栈_简单
    • 20_有效的括号
    • 232. 用栈实现队列
  • 队列_简单
    • 225_用队列实现栈
  • 树_简单
    • 104_二叉树的最大深度
    • 144_二叉树的前序遍历

以下汇总都是高出题频率题
按照以下顺序刷题
先简单再中等
数学 > 数组 > 链表 > 字符串 > 哈希表 > 双指针 > 递归 > 栈 > 队列 > 树
刷了多轮后再刷
图与回溯算法 >贪心 >动态规划
练熟了之后不能再开智能模式刷题了,一些细节关注不到

数学_简单

13_罗马数字转整数

class Solution {Map<Character, Integer> symbolValues = new HashMap<Character, Integer>() {{put('I', 1);put('V', 5);put('X', 10);put('L', 50);put('C', 100);put('D', 500);put('M', 1000);}};public int romanToInt(String s) {// I=1// IV=4// V=5// IX=9// X=10// XL=40// L=50// XC=90// C=100// CD=400// D=500// CM=900// M=1000int sum = 0;for(int i=0;i<s.length();i++){int value = symbolValues.get(s.charAt(i));//如果这个字符代表的数比后一个数大就+//反之则-if(i<s.length()-1 && value<symbolValues.get(s.charAt(i+1))){//这里用双&&,也保证当运行到第[s.length()-1]轮时,不执行&&后面的判断条件,就不会报错sum-=value;}else{sum+=value;}}return sum;}
}

66_ 加一

class Solution {public int[] plusOne(int[] digits) {for (int i = digits.length - 1; i >= 0; i--) {if (digits[i] == 9) {digits[i] = 0;} else {digits[i] += 1;return digits;}}//如果所有位都是进位,则长度+1digits= new int[digits.length + 1];digits[0] = 1;return digits;}
}
//千万不要想着将数组变为整数再计算,太麻烦

9_回文数

class Solution {//暴力解法public boolean isPalindrome(int x) {String reversedStr = (new StringBuilder(x+"")).reverse().toString();//StringBuilder是创建了一个StringBuilder对象,但是要转成string对象要toString()return (x+"").equals(reversedStr);//return (x+"")==reversedStr;不能这么比,因为这样比的是地址值}
}
class Solution {// 数学解法public boolean isPalindrome(int x) {//如何是负数不可能是回文//末位是0不可能是回文,除非X=0if (x < 0 || x % 10 == 0 && x != 0) {return false;}//让x代表前半段,reversex代表后半段//以上判断末位0正好除去了这里无法实现的翻转情况int reversex = 0;while (x > reversex) {reversex = reversex * 10 + x % 10;x = x / 10;}return reversex == x || reversex / 10 == x;//两种情况,位数为偶数和奇数}
}

70_爬楼梯

class Solution {public int climbStairs(int n) {//首先本题观察数学规律可知是斐波那契数列,但那逼公式谁记得//用另一种方法//爬到n-1层时,还有一节就到了//爬到n-2层时.还有两节就到了//所以methodNum[n]=method[n-1]+method[n-2]int[] methodNum = new int[n+1];methodNum[0] = 1;methodNum[1] = 1;for (int i = 2; i < methodNum.length; i++) {methodNum[i] = methodNum[i-1]+methodNum[i-2];}return methodNum[n];}
}

69_x的平方根

class Solution {public int mySqrt(int x) {// 非负整数// 二分查找,直到逼近满足k**2<=x的最大kint l = 0, r = x, ans = -1;while (l <= r) {int mid = (r + l) / 2;if ((long) mid * mid <= x) {ans = mid;l = mid + 1;}else {r = mid - 1;}}return ans;}
}

509_斐波那契数列

class Solution {public int fib(int n) {int[] F = new int[n+1];F[0] = 0;if(n>0){F[1]=1;}for (int i = 2; i < F.length; i++) {F[i] = F[i-1]+F[i-2];}return F[n];}
}

2235_两整数相加

class Solution {public int sum(int num1, int num2) {return num1+num2;}
}

67_二进制求和

class Solution {public String addBinary(String a, String b) {//StringBuffer是可变的字符串类,String 是不可变的对象StringBuffer ans = new StringBuffer();//取两个字符串中最大长度的字符串的长度//carry为计算记录,可算出当前位值和进位值int n = Math.max(a.length(), b.length()), carry = 0;for (int i = 0; i < n; ++i) {//比如'1'-'0',两个字符串相减就是ascii码整数差值//从末尾位向前计算//当超过较短字符串长度的位计算,补零计算carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;//添加本位的计算结果ans.append((char) (carry % 2 + '0'));//记录进位值,可能为0,可能为1carry /= 2;}//最后的进位还是1,再进位if (carry > 0) {ans.append('1');}//翻转过来,因为计算是先低位再高位,但是显示应该是先高位再低位ans.reverse();//返回值要返回字符串类型return ans.toString();}
}

415_字符串相加

//思路与二进制求和相同
class Solution {public String addStrings(String num1, String num2) {StringBuffer ans = new StringBuffer();int carry = 0;int maxLen = Math.max(num1.length(),num2.length());for (int i = 0; i < maxLen; i++) {carry+=i<num1.length() ? num1.charAt(num1.length()-1-i)-'0':0;carry+=i<num2.length() ? num2.charAt(num2.length()-1-i)-'0':0;ans.append(carry%10);carry /=10;}if(carry!=0){ans.append(carry);}ans.reverse();return ans.toString();}
}

2413_最小偶倍数

class Solution {public int smallestEvenMultiple(int n) {if(n%2==0){return n;}else{return 2*n;}}
}

2469_温度转换

class Solution {public double[] convertTemperature(double celsius) {double[] ans = new double[2];ans[0] = celsius+273.15;ans[1] = celsius*1.80+32.00;return ans;}
}

704_二分查找(重点)

class Solution {public int search(int[] nums, int target) {Integer l = 0;Integer r = nums.length-1;while(l<=r){Integer mid = (l+r)/2;if(nums[(l+r)/2]>target){//新的右边界一定要是mid-1//边界的更新一定要精确,需要思考最后的极端情况//如果不精确,最后就无法收敛到目标值//或者无法因为数组中不包含目标值,而不能跳出l<=r的满足条件,不精确将一直满足l<=rr = mid-1;}else if(nums[(l+r)/2]<target){//新的左边界一定要是mid+1l = mid+1;}else{return mid;}}return -1;}
}

数组_简单

1_两数之和

class Solution {public int[] twoSum(int[] nums, int target) {//建立一个哈希表,存放数值(key)和下标(value)//使用Map接口作为类型相比使用HashMap更加灵活Map<Integer,Integer> hashtable = new HashMap<Integer,Integer>();for (int i = 0; i < nums.length; i++) {//每次与哈希中比对,保证不重复利用一个数值,因为此数值还没存放到表中if(hashtable.containsKey(target-nums[i])){return new int[]{hashtable.get(target-nums[i]),i};}//没有满足的配对,再将此值放入哈希表中hashtable.put(nums[i], i);}return null;}
}

88_合并两个有序数组

class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {//逆双指针int p1 = m-1,p2 = n-1; for (int i = 0; i < nums1.length; i++) {//从后面向nums1中插入值,不会覆盖nums1含值的位置if(p1>=0&&p2>=0){if(nums1[p1]>nums2[p2]){//nums1的含值尾值大,插入num1的尾部nums1[nums1.length-1-i] =  nums1[p1--];}else{//nums2的含值尾值大,插入num1的尾部nums1[nums1.length-1-i] = nums2[p2--];}}else if(p1<0){nums1[nums1.length-1-i] = nums2[p2--];}else if(p1>0){nums1[nums1.length-1-i] = nums1[p1--];}}return;}
}

链表_简单

21_合并两个有序链表

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode prehead = new ListNode(-1);ListNode prev = prehead;//此时 prehead和prev只是同一个节点的不同声明,不要将prehead和prev当作两个节点while(list1 !=null && list2!=null){if(list1.val <= list2.val){prev.next=list1;list1 = list1.next;}else{prev.next = list2;list2 = list2.next;}prev = prev.next;}prev.next = list1 == null?list2:list1;return prehead.next;}
}

203_移除链表元素

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {ListNode newhead = head;ListNode ptr = newhead;while (ptr!=null) {if(newhead.val == val && ptr == newhead){//这是我自己的解法,但是其实官方迭代的思路是在head节点之前//链接一个newhead.next = head,就简单多了,不用嵌套的逻辑了newhead = newhead.next;ptr = newhead;}else{while(ptr.next !=null && ptr.next.val == val){ptr.next = ptr.next.next;}ptr = ptr.next;}}return newhead;}
}

字符串_简单

125_验证回文串

解1

class Solution {public boolean isPalindrome(String s) {//先去除除了字母和数字的特殊字符.放入sgood//将sgood和sgood.reverse对比,相等则回文StringBuffer sgood = new StringBuffer();int length = s.length();for (int i = 0; i < length; i++) {char ch = s.charAt(i);if(Character.isLetterOrDigit(ch)){sgood.append(Character.toLowerCase(ch));}}StringBuffer reverse = new StringBuffer(sgood).reverse();return sgood.toString().equals(reverse.toString());}
}

解2

class Solution {public boolean isPalindrome(String s) {//在原字符串上比对//Time O(n),space O(1)int l = 0;int r = s.length()-1;while(l<r){while(l<r && !Character.isLetterOrDigit(s.charAt(l))){l++;}while(l<r && !Character.isLetterOrDigit(s.charAt(r))){r--;}if(l<r&&Character.toLowerCase(s.charAt(l))!=Character.toLowerCase(s.charAt(r))){return false;}l++;r--;}return true;}
}

哈希表_简单

哈希表的作用

  • 统计一系列成员的数量

169_多数元素

import java.util.Map.Entry;
class Solution {public int majorityElement(int[] nums) {//集合只支持放引用数据类型HashMap<Integer,Integer> hashMap = new HashMap<>();for (Integer i = 0; i < nums.length; i++) {Integer num = nums[i];if(!hashMap.containsKey(num)){hashMap.put(num, 1);}else{Integer count = hashMap.get(num);count++;hashMap.put(num, count);}}Integer maxCount = 0;Integer maxValue = null;for (Entry<Integer,Integer> entrySet : hashMap.entrySet()) {if(maxCount < entrySet.getValue()){maxCount = entrySet.getValue();maxValue = entrySet.getKey();}}return maxValue;}
}

242_有效的字母异位词

class Solution {public boolean isAnagram(String s, String t) {HashMap<Character,Integer> sHashMap = new HashMap<>();HashMap<Character,Integer> tHashMap = new HashMap<>();Character sCh;Character tCh;//我这里理解起来比较容易//官方只用了一个hashmap,比较优雅//注意,HashMap的泛型是Character也不严谨,并不完全适用于unicode//Character只存占两字节的字符,而unicode有超过100000个不同的字符//远超65535个,官方也是Character,我觉得也不严谨//所以最正确的方法应该是先强转成Integer型(4字节)再存入hashmapif(s.length()!=t.length()){return false;}for (int i = 0; i < s.length(); i++) {sCh = s.charAt(i);if(!sHashMap.containsKey(sCh)){sHashMap.put(sCh, 1);}else{Integer count = sHashMap.get(sCh);sHashMap.put(sCh, count+1);}tCh = t.charAt(i);if(!tHashMap.containsKey(tCh)){tHashMap.put(tCh, 1);}else{Integer count = tHashMap.get(tCh);tHashMap.put(tCh, count+1);}}return sHashMap.equals(tHashMap);}
}

双指针_简单

28_找出字符串中第一个匹配项的下标

class Solution {public int strStr(String haystack, String needle) {//双指针//一个指针用来匹配//另一个指针如果在另一个指针匹配时,留在疑似匹配串的头部Integer head = 0;for (Integer idx = 0; idx < haystack.length(); ) {if(haystack.charAt(idx)==needle.charAt(idx-head)){if(idx-head+1 ==needle.length()){return head;}idx++;}else{head++;idx = head;}}return -1;}
}

344_反转字符串

class Solution {public void reverseString(char[] s) {Integer len= s.length;Integer i = 0;//意识不到数组的最后一个元素的索引是len-1也是老毛病了while(i<=(len/2-1)){Character temp = s[i];s[i] = s[len-1-i];s[len-1-i]=temp;i++;}}
}

递归_简单

206_反转链表

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {//递归思想//先用递归方法之前的程序,递归到最后一层(最后一个节点)//再用递归方法之后的程序翻转指针//为什么要加head==null的判断条件,//为什么head==null在前,head.next==null在后//因为如果链表为[],直接报错,触发空指针异常if(head==null||head.next==null){return head;}ListNode newHead = reverseList(head.next);head.next.next = head;head.next = null;//递归到最后一层的时候防止1<->2互相指,1<->2<-3<-4<-5return newHead; }
}

栈_简单

20_有效的括号

class Solution {public boolean isValid(String s) {//栈思想//栈的接口//Deque是双端队列,是接口,此接口实现了queue队列//LinkedList实现了deque双端队列接口//deque双端队列可以作为栈(push()/pop())或队列(offer()/poll())使用//pop(),从栈顶移除一个元素//peek(),查看栈顶元素//push(),放入栈顶//push和pop都是在队头添加和删除Deque<Character> deque = new LinkedList<>();//Deque为队列,可以作为栈使用for (int i = 0; i < s.length(); i++) {Character ch = s.charAt(i);//有左括号就在栈中放入对应的右括号if(ch == '('){deque.push(')');}else if (ch == '[') {deque.push(']');}else if (ch == '{') {deque.push('}');}//没循环完,且左括号就遍历完,就为空说明有余下的右括号//匹配不上也falseelse if(deque.isEmpty()||deque.peek()!=ch){return false;}else{deque.pop();}}// 完美匹配上,栈应该为空return deque.isEmpty();}
}

232. 用栈实现队列

class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;//两个栈,一个作为入队列,一个作为出队列public MyQueue() {inStack = new LinkedList<>();outStack = new LinkedList<>();}public void push(int x) {inStack.push(x);}public int pop() {//在出队列的时候才将inStack的数据移到outStack,如果在入队列的时候,每一次移动时间复杂度都将是O(n)//只有outStack为空,才能将inStack移到outStack,不然inStack的新数据将把outStack中的旧数据压到栈底while(outStack.isEmpty()){//移动直到inStack为空while(!inStack.isEmpty()){outStack.push(inStack.pop());}}return outStack.pop();}public int peek() {//与pop()操作同理while(outStack.isEmpty()){while(!inStack.isEmpty()){outStack.push(inStack.pop());}}return outStack.peek();}public boolean empty() {if(inStack.isEmpty() && outStack.isEmpty()){return true;}return false;}
}/*** Your MyQueue object will be instantiated and called as such:* MyQueue obj = new MyQueue();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.peek();* boolean param_4 = obj.empty();*/

队列_简单

225_用队列实现栈

class MyStack {//LinkedList是类,LinkedList中实现了deque接口//Queue队列是一个接口,deque双端队列中实现了queue接口Queue<Integer> queue1;Queue<Integer> queue2;public MyStack() {queue1 = new LinkedList<Integer>();queue2 = new LinkedList<Integer>();}public void push(int x) {queue2.offer(x);while(!queue1.isEmpty()){queue2.offer(queue1.poll());}Queue<Integer> temp = queue1;queue1 = queue2;queue2 = temp;}public int pop() {return queue1.poll();}public int top() {return queue1.peek();}public boolean empty() {return queue1.isEmpty();}
}/*** Your MyStack object will be instantiated and called as such:* MyStack obj = new MyStack();* obj.push(x);* int param_2 = obj.pop();* int param_3 = obj.top();* boolean param_4 = obj.empty();*/

树_简单

104_二叉树的最大深度

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int maxDepth(TreeNode root) {//递归思想if(root == null){return 0;}else{int lDepth = maxDepth(root.left);int rDepth = maxDepth(root.right);return Math.max(lDepth,rDepth) + 1;}}
}

144_二叉树的前序遍历

import com.sun.source.tree.Tree;/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> list = new ArrayList<>();if(root != null){list.add(root.val);if(root.left != null){List<Integer> left = preorderTraversal(root.left);list.addAll(left);}if(root.right != null){List<Integer> right = preorderTraversal(root.right);list.addAll(right);}}return list;}
}

相关文章:

力扣解题汇总_JAVA

文章目录 数学_简单13_罗马数字转整数66_ 加一9_回文数70_爬楼梯69_x的平方根509_斐波那契数列2235_两整数相加67_二进制求和415_字符串相加2413_最小偶倍数2469_温度转换704_二分查找(重点) 数组_简单1_两数之和88_合并两个有序数组 链表_简单21_合并两个有序链表203_移除链表…...

ubuntu下安装编译cmake,grpc与protobuf

文章目录 install cmakeinstall grpcinstall protobuf注 install cmake sudo apt-get install -y g make libssl-devcd third_party/cmake-3.17.2./configuresudo make && make installcmake --version install grpc $ sudo apt-get install -y build-essential auto…...

SQL Prompt 插件

SQL Prompt 插件 注&#xff1a;SQL Prompt插件提供智能代码补全、SQL格式化、代码自动提示和快捷输入等功能&#xff0c;非常方便&#xff0c;可以自行去尝试体会。 1、问题 SSMS&#xff08;SQL Server Management Studio&#xff09;是SQL Server自带的管理工具&#xff0c…...

知识图谱抽取分析中,如何做好实体对齐?

在知识图谱抽取分析中&#xff0c;实体对齐是将不同知识图谱中的相同实体映射到同一表示空间的关键步骤。为了做好实体对齐&#xff0c;可以参考以下方法和策略&#xff1a; 基于表示学习的方法&#xff1a; 使用知识图谱嵌入技术&#xff0c;如TransE、GCN等&#xff0c;将实体…...

【Python通过UDP协议传输视频数据】(界面识别)

提示&#xff1a;界面识别项目 前言 随着网络通信技术的发展&#xff0c;视频数据的实时传输在各种场景中得到了广泛应用。UDP&#xff08;User Datagram Protocol&#xff09;作为一种无连接的协议&#xff0c;凭借其低延迟、高效率的特性&#xff0c;在实时性要求较高的视频…...

【伪随机数】关于排序算法自测如何生成随机数而引发的……

以 Random 开始 可能一开始&#xff0c;你只是写到了排序算法如何生成随机数 public static void main(String[] args) {Random random new Random();int[] nums new int[10];for (int i 0; i < nums.length; i) {nums[i] random.nextInt(100);}System.out.println(&q…...

核密度估计(Kernel Density Estimation, KDE)是一种非参数统计方法

一、核密度估计 核密度估计&#xff08;Kernel Density Estimation, KDE&#xff09;是一种非参数统计方法&#xff0c;用于估计随机变量的概率密度函数。它通过将每个数据点周围的核函数叠加&#xff0c;生成平滑的密度曲线。以下是其核心要点&#xff1a; 1. 基本概念 非参…...

【k8s面试题2025】2、练气初期

在练气初期&#xff0c;灵气还比较稀薄&#xff0c;只能勉强在体内运转几个周天。 文章目录 简述k8s静态pod为 Kubernetes 集群移除新节点&#xff1a;为 K8s 集群添加新节点Kubernetes 中 Pod 的调度流程 简述k8s静态pod 定义 静态Pod是一种特殊类型的Pod&#xff0c;它是由ku…...

栈溢出原理

文章目录 前言一、基本示例二、分析栈1. 先不考虑gets函数的栈情况2. 分析gets函数的栈区情况 三、利用栈1. 构造字符串2. 利用漏洞 前言 栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数&#xff0c;因而导致与其相邻的栈中的变量的值被改变。…...

Jmeter如何进行多服务器远程测试

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 JMeter是Apache软件基金会的开源项目&#xff0c;主要来做功能和性能测试&#xff0c;用Java编写。 我们一般都会用JMeter在本地进行测试&#xff0c;但是受到单…...

2.slf4j入口

文章目录 一、故事引入二、原理探究三、SLF4JServiceProvider四、总结 一、故事引入 故事要从下面这段代码说起 public class App {private static final Logger logger LoggerFactory.getLogger(App.class);public static void main( String[] args ) throws Exception {lo…...

初学stm32 --- CAN

目录 CAN介绍 CAN总线拓扑图 CAN总线特点 CAN应用场景 CAN物理层 CAN收发器芯片介绍 CAN协议层 数据帧介绍 CAN位时序介绍 数据同步过程 硬件同步 再同步 CAN总线仲裁 STM32 CAN控制器介绍 CAN控制器模式 CAN控制器模式 CAN控制器框图 发送处理 接收处理 接收过…...

软件测试—接口测试面试题及jmeter面试题

一&#xff0c;接口面试题 1.接口的作用 实现前后端的交互&#xff0c;实现数据的传输 2.什么是接口测试 接口测试就是对系统或组件之间的接口进行测试&#xff0c;主要是校验数据的交换、传递和控制管理过程&#xff0c;以及相互逻辑关系 3.接口测试必要性 1.可以发现很…...

图论的起点——七桥问题

普瑞格尔河从古堡哥尼斯堡市中心流过&#xff0c;河中有小岛两座&#xff0c;筑有7座古桥&#xff0c;哥尼斯堡人杰地灵&#xff0c;市民普遍爱好数学。1736年&#xff0c;该市一名市民向大数学家Euler提出如下的所谓“七桥问题”&#xff1a; 从家里出发&#xff0c;7座桥每桥…...

嵌入式开发通讯协议大全(在写中)

目录 modbus RTU通讯协议&#xff1a; pmbus通讯协议&#xff1a; modbus RTU通讯协议&#xff1a; 主要应用功能&#xff1a; 规范了软件变量&#xff0c;访问功能码&#xff0c;给不同工程师开发的不同产品有统一的通讯标准 帧结构简单&#xff0c;占用带宽少&#xff0c…...

webpack 4 升级 webpack 5

升级至最新的 webpack 和 webpack-cli npm run build 报错&#xff0c; unknown option -p 解决方案&#xff1a; 改成 --mode production npm run build 报错 unknown option --hide-modules 解决方案&#xff1a;直接移除 npm run build 报错&#xff1a;TypeError: Cannot a…...

oneplus3t-lineageos-16.1编译-android9, oneplus3t-lineage-14编译-android7

oneplus3t-lineage-14编译-android7 1 清华linageos镜像 x lineage-14.1-20180223-nightly-oneplus3-signed.zip ntfs分区挂载为普通用户目录 , ext4分区挂载为普通用户目录 bfsu/lineageOS镜像 ts/lingeageOS镜像 oneplus3/lineage-build-simple-manual.md, manifest-p…...

HTML中最基本的东西

本文内容的标签&#xff0c;将是看懂HTML的最基本之基本 &#xff0c;是跟您在写文章时候一样内容。一般想掌握极其容易&#xff0c;但是也要懂得如何使用&#xff0c;过目不忘&#xff0c;为手熟尔。才是我们学习的最终目的。其实边看边敲都行&#xff0c;或者是边看边复制粘贴…...

<OS 有关>Ubuntu 24 安装 openssh-server, tailscale+ssh 慢增加

更新日志&#xff1a; Created on 14Jan.2025 by Dave , added openssh-server, tailescape Updated on 15Jan.2025, added "tailescape - tailscape ssh" 前期准备&#xff1a; 1. 更新可用软件包的数据库 2. 升级系统中所有已安装的软件包到最新版本 3. 安装 cur…...

神经网络常见操作(卷积)输入输出

卷积 dimd的tensor可以进行torch.nn.Convnd(in_channels,out_channels),其中nd-1,d-2对于torch.nn.Convnd(in_channels,out_channels)&#xff0c;改变的是tensor的倒数n1维的大小 全连接 使用torch.nn.Linear(in_features,out_features,bias)实现YXWT b,其中X 的形状为 (ba…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...