1. 24两两交换链表节点
1.迭代法 由单链表的修改 节点的指向,示意图,注意前后顺序
/**
* 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 swapPairs(ListNode head) {
// ListNode dummy = new ListNode(0);
// dummy.next = head;
// ListNode prev = dummy;
// while(prev.next != null && prev.next.next != null){
// ListNode first = prev.next;
// ListNode second = prev.next.next;
// prev.next= second;
// first.next = second.next;
// second.next = first;
// prev = first;
// }
// return dummy.next;
// }
// }
2.递归法 简洁些,比较难想
//递归法
class Solution {
public ListNode swapPairs(ListNode head) {
if(head == null || head.next == null){
return head;
}
ListNode first = head;
ListNode second = head.next;
first.next = swapPairs(second.next);
second.next = first;
return second;
}
}
就是最后的两个交换,然后作为值swapPairs()返回
2. 200岛屿数量
class Solution {
public int numIslands(char[][] grid) {
//我的思路:按照上下左右,有值就赋予一个字母;没有就赋值一个不同的字母值,看字母值
//另一个思路就是遇到一个1,就会展开上下左右的搜索,并把检测到的相邻1赋值0
//直到达到边界条件
int count = 0;
for(int i= 0;i<grid.length;i++){
for(int j= 0; j< grid[0].length;j++){
if(grid[i][j] == '1'){
dfs(grid,i,j);
count ++;
}
}
}
return count;
}
private void dfs(char[][] grid,int i,int j){
if(i<0 || j <0 || i>=grid.length || j>= grid[0].length || grid[i][j] == '0') return;
grid[i][j] = '0';
dfs(grid, i +1,j);
dfs(grid,i,j+1);
dfs(grid,i,j-1);
dfs(grid,i-1,j);
}
}
//思路就是遇到一个1,就会展开上下左右的搜索,并把检测到的相邻1赋值0
//直到达到边界条件
3.开发:内网启动fastapi,swagger ui
1.这里swagger页面访问不了,发现少css等东西。首先看了其他的swagger ui启动所需要的python依赖
2.然后改代码,js、cs、css、redoc调用url或者在自己的运行文件目录下,装static/css等
3.联调测试发现两个问题:
一个是文档解析的时候,有个文件解析接口,不会在我写的方法里立刻返回,需要等待,这里文件写的就有漏洞了;
二是在向量化和milvus搜索的服务配置到fastapi的app的startup中时,发现有一个向量化服务的类
textembedding() 后端返回"嵌入服务未初始化"