java学习 leetcode24交换链表节点 200岛屿数量 +一些开发任务

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() 后端返回"嵌入服务未初始化"

相关推荐
维天说25 分钟前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane19941 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
你想知道什么?1 小时前
线性回归-学习笔记
笔记·学习·线性回归
鱼毓屿御1 小时前
从「只会聊」到「边想边做」的跃迁
前端·学习·react.js
噢,我明白了2 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品2 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘2 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
AOwhisky2 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
Java内核笔记2 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端
糖果店的幽灵3 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph