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

相关推荐
JH30738 小时前
SpringBoot 优雅处理金额格式化:拦截器+自定义注解方案
java·spring boot·spring
盐焗西兰花9 小时前
鸿蒙学习实战之路-Reader Kit修改翻页方式字体大小及行间距最佳实践
学习·华为·harmonyos
QiZhang | UESTC9 小时前
学习日记day76
学习
久邦科技9 小时前
20个免费电子书下载网站,实现电子书自由(2025持续更新)
学习
Coder_Boy_9 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
Gain_chance9 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
invicinble10 小时前
对tomcat的提供的功能与底层拓扑结构与实现机制的理解
java·tomcat
较真的菜鸟10 小时前
使用ASM和agent监控属性变化
java
黎雁·泠崖10 小时前
【魔法森林冒险】5/14 Allen类(三):任务进度与状态管理
java·开发语言
Gain_chance11 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习