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

相关推荐
龙茶清欢9 分钟前
7、微服务中 DTO、VO、PO、BO 的设计规范
java·spring boot·spring cloud
ToneChip16 分钟前
配合AI自动生成时序图--最详细在VS Code中使用PlantUML绘图
java
苏纪云18 分钟前
算法<java>——排序(冒泡、插入、选择、归并、快速、计数、堆、桶、基数)
java·开发语言·算法
起床学FPGA24 分钟前
rag学习
学习
xie_pin_an24 分钟前
SpringBoot 统一功能处理:拦截器、统一返回与异常处理
java·spring boot·后端
冬天vs不冷26 分钟前
Java基础(十三):内部类详解
android·java·python
YQ_ZJH27 分钟前
Java List列表创建方法大总结
java·开发语言·数据结构·算法·list
城管不管30 分钟前
Spring + Spring MVC + MyBatis
java·spring·mvc
TDengine (老段)32 分钟前
TDengine 聚合函数 ELAPSED 用户手册
java·大数据·数据库·sql·物联网·时序数据库·tdengine
我不是混子37 分钟前
数据误删了咋办?别怕,今天来教你如何恢复数据
java·后端