CSDN编程题-每日一练(2023-08-27)

news2024/9/27 11:53:18

CSDN编程题-每日一练(2023-08-27)

  • 一、题目名称:异或和
  • 二、题目名称:生命进化书
  • 三、题目名称:熊孩子拜访

一、题目名称:异或和

时间限制:1000ms内存限制:256M

题目描述:

小张找到了一个整数 N,他想问问你从 1 到 N 的所有不同整数的异或和是多少, 请你回答他的问题。

输入描述:

第一行包含一个整数 N (1 <= N <= 100000)。

输出描述:

第一行输出一个整数, 代表从 1 到 N 的所有不同整数的异或和。

🚩 示例:

✔️ 示例1:

输入
5

输出
1

🔔 提示:
1 ^ 2 ^ 3 ^ 4 ^ 5 = 3 ^ 3 ^ 4 ^ 5 = 4 ^ 5 = 1。

🔔 解题思路:
根据异或的性质,可以得知一个数与自身异或的结果为0,即 a^a = 0。而对于任意一个数 a,a^0 = a。因此,从 1 到 N 的所有整数的异或和等价于从 1 到 N-1 的所有整数的异或和再与 N 进行异或运算。

代码1如下:

##输入的整数 N
N = int(input())

##初始化异或和 xor_sum 为 0
xor_sum = 0

##循环遍历从 1 到 N-1 的所有整数 i,并将 xor_sum 与 i 进行异或运算
for i in range(1, N):
    xor_sum ^= i
##将 xor_sum 与 N 进行异或运算,得到最终的异或和
xor_sum ^= N

#输出异或和xor_sum
print(xor_sum)

在这里插入图片描述

代码2如下:

##计算从1到N的所有数字的异或和,并将结果输出

#include <stdio.h>

int main() {
    int N;
    ##变量xor_sum为0,用于保存异或和
    int xor_sum = 0;
    scanf("%d", &N);
    
    ##使用for循环从1遍历到N-1
    for (int i = 1; i < N; i++) {
    ## 对变量xor_sum进行异或运算,将当前循环变量i与xor_sum进行异或,
    ## 并将结果赋值给xor_sum,相当于累计计算异或和
        xor_sum ^= i;
    }
    
    ##将变量N与xor_sum进行异或,并将结果赋值给xor_sum,相当于将N也纳入异或和的计算
    xor_sum ^= N;
    printf("%d\n", xor_sum);
    
    return 0;
}

在这里插入图片描述

代码3如下:

#include <iostream>
using namespace std;

int main() {
    int N;
    cin >> N;
    
    int xor_sum = 0;
    for (int i = 1; i < N; i++) {
        xor_sum ^= i;
    }
    xor_sum ^= N;
    
    cout << xor_sum << endl;
    
    return 0;
}

在这里插入图片描述

代码4如下:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int xor_sum = 0;
        for (int i = 1; i < N; i++) {
            xor_sum ^= i;
        }
        xor_sum ^= N;
        System.out.println(xor_sum);
    }
}

在这里插入图片描述
代码5如下:

package main

import "fmt"

func main() {
    var N int
    fmt.Scan(&N)

    xor_sum := 0
    for i := 1; i < N; i++ {
        xor_sum ^= i
    }
    xor_sum ^= N

    fmt.Println(xor_sum)
}

在这里插入图片描述

二、题目名称:生命进化书

时间限制:1000ms内存限制:256M

题目描述:

小A有一本生命进化书,以一个树形结构记载了所有生物的演化过程。 为了探索和记录其中的演化规律,小A提出了一种方法,可以以字符串的形式将其复刻下来,规则如下: 初始只有一个根节点,表示演化的起点,依次记录 01 字符串中的字符, 如果记录 0,则在当前节点下添加一个子节点,并将指针指向新添加的子节点; 如果记录 1,则将指针回退到当前节点的父节点处。 现在需要应用上述的记录方法,复刻下它的演化过程。请返回能够复刻演化过程的字符串中, 字典序最小的 01 字符串; 注意:节点指针最终可以停在任何节点上,不一定要回到根节点。

输入描述:

parents[] 数组,其中,parents[i] 表示编号 i 节点的父节点编号(根节点的父节点为 -1)。

输出描述:

返回能够复刻演化过程的字符串中, 字典序最小 的 01 字符串

🚩示例:

✔️示例1

输入
* 输入样例1
[-1,0,0,2]
* 输入样例2
[-1,0,0,1,2,2]

输出
* 输出样例1
00110

解释:共存在 2 种记录方案:
第 1 种方案为:0(记录编号 1 的节点) -> 1(回退至节点 0) -> 0(记录编号 2 的节点) -> 0((记录编号 3 的节点))
第 2 种方案为:0(记录编号 2 的节点) -> 0(记录编号 3 的节点) -> 1(回退至节点 2) -> 1(回退至节点 0) -> 0(记录编号 1 的节点)
返回字典序更小的 ‘00110’

输出样例2
00101100

提示:

1 <= parents.length <= 10^4

-1 <= parents[i] < i (即父节点编号小于子节点)

🔔 解题思路:

利用深度优先搜索(DFS)的方式遍历树,并记录每个节点的演化路径,然后找出字典序最小的01字符串作为结果。

代码1如下:

import sys
##设置递归深度限制为100000,防止递归过深导致堆栈溢出
sys.setrecursionlimit(100000)  


##定义变量N为10000,表示节点数量的上限,可以避免数组或列表溢出的问题,并确保程序可以处理足够大的生物演化树
N = 10000

##初始化变量n为0,表示当前已经添加的节点数量
n = 0
##创建一个大小为N的列表parents_node ,用于存储每个节点的父节点编号
parents_node = [0] * N
##创建一个大小为N的二维列表dp,用于存储每个节点的状态信息。dp[i][0]表示以节点i为根节点且不返回该节点的最小字符串,dp[i][1]表示以节点i为根节点且返回该节点的最小字符串
dp = [["", ""] for _ in range(N)]

##创建一个大小为N的列表child_node ,用于存储每个节点的子节点列表
child_node = [[] for _ in range(N)]


##递归函数dfs,用于遍历树并计算每个节点的最小字符串
def dfs(s):
    for v in child_node[s]:  ##遍历节点s的子节点列表,对每个子节点调用dfs函数
        dfs(v)
####计算以节点v为根节点且返回该节点的最小字符串时,加上当前节点s的值(0)和回退符号(1)构成的字符串
        a = "0" + dp[v][1] + "1"  
##计算以节点v为根节点且不返回该节点的最小字符串时,加上当前节点s的值(0)和子节点v的最小字符串(dp[v][0]和dp[v][1]中较小的一个)构成的字符串
        b = "0" + min(dp[v][0], dp[v][1])
##计算以节点s为根节点且返回该节点的最小字符串,要么是在a前面添加节点s的值和回退符号,要么是在a后面添加节点u的值和回退符号
        new_return = min(a + dp[s][1], dp[s][1] + a)
##计算以节点s为根节点且不返回该节点的最小字符串,要么是在b前面添加节点s的值和子节点v的最小字符串,要么是在a后面添加节点s的值和子节点v的最小字符串
        new_no_return = min(dp[s][1] + b, a + dp[s][0])
        ##更新节点s的不返回的最小字符串
        dp[s][0] = new_no_return
##更新节点s的返回的最小字符串
        dp[s][1] = new_return

##生物演化树的父节点列表,输入的字符串
input_str = input()

##字符串的长度
input_len = len(input_str)

###初始化变量processed_number为0,表示已经处理过的字符数量
processed_number = 0

##函数getch,用于从输入字符串中获取字符
def getch():
##声明processed_number是全局变量
    global processed_number
##每次调用getch函数后,processed_number加1
    processed_number += 1
## 返回输入字符串中第processed_number个字符。
    return input_str[processed_number - 1]


##函数read,从输入字符串中读取一个整数
def read():

##初始化变量f为1,表示正数
##  x = 0: 初始化变量x为0,用于存储读取的整数
    f = 1
    x = 0
###调用getch函数获取一个字符
    char = getch()
    while char > '9' or char < '0':  ##当字符char 不是数字时循环执行以下代码块
        if char == '-':  ##如果字符char 是负号,则将变量f设为-1
            f = -1
            ##再次调用getch函数获取一个字符
        char = getch()
##当字符char 是数字时循环执行以下代码块
    while char >= '0' and char <= '9':
    ##将字符char转换为对应的数字,并将其加到变量x的末尾
        x = x * 10 + ord(char) - ord('0')
       ## 再次调用getch函数获取一个字符
        char = getch()
##返回读取的整数,如果之前设定了f为-1,则返回负数
    return f * x

###初始化变量root_node_number为0,表示树的根节点编号
root_node_number= 0
while processed_number < input_len:  ##当处理过的字符数量小于输入字符串的长度时循环执行以下代码块
    parents_node[n] = read()  ##将读取的整数作为第n个节点的父节点编号
    if parents_node[n] == -1:  ##如果第n个节点没有父节点(即是根节点)
        root_node_number= n  ##将当前节点编号赋值给root_node_number作为根节点的编号
    else:  ##否则,如果第n个节点有父节点
        child_node[parents_node[n]].append(n)  ##在父节点的子节点列表中添加当前节点
    n += 1  ##增加节点数量

dfs(root_node_number)  ##调用dfs函数遍历树,并计算每个节点的最小字符串
##打印根节点的不返回和返回的最小字符串中较小的一个
print(min(dp[root_node_number][0], dp[root_node_number][1]))

在这里插入图片描述
代码2如下:

package main

import (
	"fmt"
	"strings"
)

const N = 10000

var (
	n             int
	parents_node  [N]int
	dp            [N][2]string
	child_node    [N][]int
	input_str     string
	processed_num int
)

func dfs(s int) {
	for _, v := range child_node[s] {
		dfs(v)
		a := "0" + dp[v][1] + "1"
		b := "0" + min(dp[v][0], dp[v][1])
		new_return := min(a+dp[s][1], dp[s][1]+a)
		new_no_return := min(dp[s][1]+b, a+dp[s][0])
		dp[s][0] = new_no_return
		dp[s][1] = new_return
	}
}

func getch() byte {
	char := input_str[processed_num]
	processed_num++
	return char
}

func read() int {
	f := 1
	x := 0
	char := getch()
	for char > '9' || char < '0' {
		if char == '-' {
			f = -1
		}
		char = getch()
	}
	for char >= '0' && char <= '9' {
		x = x*10 + int(char-'0')
		char = getch()
	}
	return f * x
}

func min(a, b string) string {
	if a < b {
		return a
	}
	return b
}

func main() {
	fmt.Scanln(&input_str)
	input_str = strings.TrimSpace(input_str)
	input_len := len(input_str)

	root_node_number := 0
	for processed_num < input_len {
		parents_node[n] = read()
		if parents_node[n] == -1 {
			root_node_number = n
		} else {
			child_node[parents_node[n]] = append(child_node[parents_node[n]], n)
		}
		n++
	}

	dfs(root_node_number)
	fmt.Println(min(dp[root_node_number][0], dp[root_node_number][1]))
}

在这里插入图片描述

三、题目名称:熊孩子拜访

时间限制:1000ms内存限制:256M

题目描述:

已知存在一个长度为n的整数序列A。 A中所有元素按照从小到达的顺序进行排序。 现在执行操作倒置一段序列。 请找到A序列里的倒置子序列。

输入描述:

第一行输入整数n.(1<=n<=1000)。 第二行输入n个整数。(1<=num<=10000)

输出描述:

输出被倒置的数列的左值,右值。 如果没有输出0 0

🚩示例:

✔️示例1
输入
4
1 3 2 4

输出
2 3

🔔 解题思路:

根据题目描述,我们需要找到整数序列A中的倒置子序列。假设整个A序列是按照从小到大的顺序排列的,那么倒置子序列就是在这个有序序列中出现递减的部分,我们需要找到这个递减的部分的最左值和最右值。找到整数序列中的倒置子序列并输出。如果没有倒置子序列,则输出0 0。

代码1如下:

n = int(input().strip())
##按空格分割成多个子字符串,然后用列表推导式
## [int(item) for item in ...]将每个子字符串转换成整数,最后将这些整数放入列表中并赋值给变量arr
arr = [int(item) for item in input().strip().split()]

def solution(n, arr):
    result = []  ##空列表result,用于存储结果
    # 初始化right_val为0,用于保存右值
    right_val = 0
    
    # 初始化left_val为0,用于保存左值
    left_val = 0
    ##初始化next_val为0,表示当前遍历到的元素
    next_val = 0
   ##遍历列表arr中的每个元素,赋值给变量item
    for item in arr:

       ###如果next_val大于item且item大于right_val,即当前元素比上一个元素小且比右值大
        if next_val > item and item > right_val:
        ##将next_val赋值给right_val,更新右值为上一个元素
            right_val = next_val
            ##将item赋值给left_val,更新左值为当前元素
            left_val = item
            
  ###如果next_val小于left_val且item大于right_val,即上一个元素比左值大且 当前元素比右值大
        elif next_val < left_val and item > right_val:
       ## 将next_val赋值给left_val,更新左值为上一个元素
            left_val = next_val
       ##将item赋值给next_val,更新下一个元素为当前元素
        next_val = item
            
     ##将左值转换为字符串,并添加到结果列表result中
    result.append(str(left_val))

     ##将右值转换为字符串,并添加到结果列表result中
    result.append(str(right_val))

   ##如果结果列表为空
    if len(result) == 0:

     ##将结果列表置为["0", "0"],表示没有倒置子序列
        result = ["0", "0"]
    return result  #返回结果列表
    
result = solution(n, arr)
print(" ".join(result))

在这里插入图片描述

代码2如下:

#include <stdio.h>

void solution(int n, int arr[], int result[]) {
    int right_val = 0;
    int left_val = 0;
    int next_val = 0;
##使用 for 循环从0遍历到 n-1
    for (int i = 0; i < n; i++) {
##将数组 arr 在索引 i 处的元素赋值给变量 item,即当前遍历到的元素
        int item = arr[i];
        ##如果 next_val 大于 item 并且 item 大于 right_val
        if (next_val > item && item > right_val) {
        ##将 next_val 赋值给 right_val,更新右值为上一个数
            right_val = next_val;
        ##将 item 赋值给 left_val,更新左值为当前数
            left_val  = item;
            
        ##否则,如果 next_val 小于 left_val 并且 item 大于 right_val
        } else if (next_val < left_val && item > right_val) {
        ##将 next_val 赋值给 left_val,更新左值为上一个数
            left_val = next_val;
        }
        ##将当前数 item 赋值给 next_val,表示下一个循环的上一个数是当前数
        next_val = item;
    }
    result[0] = left_val; ##将左值 left_val 存储到结果数组 result 的第一个位置
    result[1] = right_val; ##将右值 right_val 存储到结果数组 result 的第二个位置
    #如果结果数组的第一个和第二个位置都是0
    if (result[0] == 0 && result[1] == 0) {
        result[0] = 0; ##将结果数组的第1个位置设置为0
        result[1] = 0; ##将结果数组的第2个位置设置为0
    }
}

int main() {
    int n;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
    #读取一个整数n,并将其赋值给数组 arr 在索引 i 处的元素
        scanf("%d", &arr[i]);     }
    int result[2]; ##声明一个大小为2的整数数组 result,用于保存结果
    solution(n, arr, result);
    printf("%d %d\n", result[0], result[1]);

    return 0;
}

代码3如下:

n = int(input())
left_val = 0  ##初始化变量left_val为0,用于保存左值
right_val = 0  ##初始化变量right_val为0,用于保存右值
next_val = 0  ##初始化变量next_val为0,表示当前遍历到的元素位置

arr = input().split()  # 读取一行输入并拆分为字符串列表


##使用for循环迭代1到n之间的每个数,赋值给变量i。范围是左闭右开的,所以不包含n + 1
for i in range(1, n + 1):

##如果当前迭代到的是第一个数
    if i == 1:
    ##将列表arr 的第一个元素转换为整数,并赋值给变量temp
        temp = int(arr[0])
    #如果当前迭代到的不是第一个数
    else:
    ##将变量temp的值赋给临时变量t
        t = temp
    ##将列表values中索引为i - 1的元素转换为整数,并赋值给变量temp
        temp = int(arr[i - 1])
        ##如果上一个数t大于当前数temp,即出现了倒置
        if t > temp:
        ##如果next_val为0,表示当前是第一个倒置
            if next_val == 0:
            ##将上一个数t赋值给right_val,更新右值为上一个数
                right_val = t
            ##将当前数temp赋值给left_val,更新左值为当前数
                left_val = temp
            ##将next_val设为1,表示已经找到了第一个倒置
                next_val = 1
             #如果已经找到了第一个倒置
            else:
            ##将当前数temp赋值给left_val,更新左值为当前数
                left_val = temp
##打印输出左值和右值
print(left_val , right_val )

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/934468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【zip密码】修改zip压缩包密码

Zip压缩包设置了密码&#xff0c;想要修改密码&#xff0c;我们该如何操作&#xff1f;今天分享两个修改zip压缩包密码的方法。 方法一&#xff1a; 输入密码&#xff0c;将zip压缩包里面的文件解压出来。 然后找到解压出来的文件&#xff0c;将文件重新压缩&#xff0c;并且…

逆向抓包大神

0x01 前言 抓包应该是我们逆向的第一步&#xff0c;只有先抓到包&#xff0c;才能决定我们是否要进行脱壳、逆向。万一他没有加密、万一数据不是我们想要的那岂不是白忙活了。但是目前很APP都设置了门槛&#xff0c;比如新版的抖音、淘宝、天眼查等挂上代理就直接无数据或者就…

Day45|leetcode 70. 爬楼梯、322. 零钱兑换、279.完全平方数

leetcode 70. 爬楼梯 题目链接&#xff1a;70. 爬楼梯 - 力扣&#xff08;LeetCode&#xff09; 本题可以用背包问题来解决&#xff0c;就相当于楼顶是背包&#xff0c;台阶是物品&#xff0c;相当于之前写法的进阶版。 代码实现 class Solution { public:int climbStairs(in…

ModaHub魔搭社区:WinPlan经营大脑API查询业务表单列表

查询业务表单模板列表 用户通过此接口查看生效的维度表单和业务表单的基础信息 ●URL:open.shulead.com/api/schema/getList ●Method:POST ●需要登录:否 ●需要鉴权:是 请求示例 可以仅传递部分请求参数。 成功响应 条件:请求参数合法,并且租户身份校验通过。 状态码:…

RedisDesktopManager(redis客户端,可输入用户名密码)

RedisDesktopManager&#xff08;redis客户端&#xff0c;可输入用户名密码&#xff09; Redis桌面管理器&#xff08;又名RDM&#xff09; - 是一个用于Windows&#xff0c;Linux和MacOS的快速开源Redis数据库管理应用程序。可以使用url连接或账号密码。 redis设置账号密码后…

电商数据接口API:品牌价格监控与数据分析的重要工具

一、引言 随着电子商务的快速发展&#xff0c;传统品牌企业越来越重视在线销售市场。为了在竞争激烈的市场环境中取得成功&#xff0c;企业需要实时掌握市场动态&#xff0c;了解自身产品的销售情况、价格趋势以及竞品信息。为了实现这一目标&#xff0c;各大电商平台&#xf…

机器视觉-外观缺陷检测已成笑话

外观检测盛行几年,只要做机器视觉工程师,每个人都好奇都想做做。不做不知道,一做吓一跳。我将从各大家一线公司掌握的信息来具体分析外观缺陷检测埋了多少坑: 明显的现象,公司摆了很多设备,都在公司,都没有出售。我从业15年,从来没有经历过有这么多设备待在公司。从来…

Python 潮流周刊#17:Excel 终于支持 Python 了、Meta 重磅开源新项目、Mojo 新得 1 亿美元融资

你好&#xff0c;我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容&#xff0c;大部分为英文。标题取自其中两则分享&#xff0c;不代表全部内容都是该主题&#xff0c;特此声明。 本周刊由 Python猫 出品&#xff0c;精心筛选国内外的 250 信息源&#xff0c;为你挑选…

软考:中级软件设计师:数据库恢复与备份,故障与恢复,反规范化

软考&#xff1a;中级软件设计师:数据库恢复与备份 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备…

第 7 章 排序算法(6)(快速排序)

7.9快速排序 7.9.1快速排序法介绍: 快速排序&#xff08;Quicksort&#xff09;是对冒泡排序的一种改进。基本思想是&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对…

idea2023项目上传到gitee

1、按照gitee插件 File——>Settings plugins——>Marketplace下面搜索gitee,然后按照gitee插件 2、上传项目 VCS_——>Share Project on Gitee 如果第一次没登录的需要先登录&#xff0c;登录完后就可以上传了

【Python】文件拖放(drag and drop)并获取文件信息

QWidget 对象支持拖放&#xff0c;拖拽文件到窗口时触发拖拽事件&#xff0c;拖拽时触发的几个事件函数&#xff1a; dragEnterEvent&#xff1a;当拖动动作进入窗口时触发该事件 dragLeaveEvent&#xff1a;当拖动动作离开窗口时触发该事件&#xff0c;离开窗口时没有mimeDa…

Matlab 使用经验分享(常用函数介绍;矩阵常见计算)

Matlab 使用经验分享 大家好&#xff01;最近有很多朋友询问我关于 Matlab 的使用&#xff0c;于是我决定写一篇博客来分享一下我的经验。对于数学和编程爱好者来说&#xff0c;Matlab 是一个非常有用的工具。我自己在数学实验和数学建模竞赛中也经常使用它。那么&#xff0c;…

数据结构算法--5 归并排序

归并排序 我们先看一下归并排序是怎么归并的 两个有序列表&#xff0c;有low指针指向2&#xff0c;high指针指向6&#xff0c;mid指针指向9 再建一个新列表&#xff0c;1<2&#xff0c;所以1放到列表&#xff0c;右指针右移一位&#xff0c;再比较2和3&#xff0c;2放入列…

【KMP算法-代码随想录】

目录 1.什么是KMP2.什么是next数组3.什么是前缀表&#xff08;1&#xff09;前后缀含义&#xff08;2&#xff09;最长公共前后缀&#xff08;3&#xff09;前缀表的必要性 4.计算前缀表5.前缀表与next数组&#xff08;1&#xff09;使用next数组来匹配 6.构造next数组&#xf…

微信小程序的社区老年人 高校大学生体检信息管理系统

社区老年人体检信息管理系统的系统项目的概述设计分析&#xff0c;主要内容有平台的具体分析&#xff0c;进行数据库的是设计&#xff0c;数据采用mysql数据库&#xff0c;并且对于系统的设计采用比较人性化的操作设计&#xff0c;对于系统出现的错误信息可以及时做出处理及反馈…

成都国际车展来袭:有颜值有实力 大运新能源两款车型备受关注

今年成都国际车展现场最大看点是什么&#xff1f;诸多实力车企汇聚一堂各显神通&#xff0c;形式各样的新能源车型更是吸晴无数&#xff0c;成为消费者的购车首选。老品牌、新势力的大运新能源独具匠心设计特色展台&#xff0c;旗下两款车型悦虎和远志M1重磅登场。两款车型既有…

直击成都国际车展:远航汽车多款车型登陆车展,打造完美驾乘体验

随着市场渗透率日益高涨&#xff0c;新能源汽车成为今年成都国际车展的关注焦点。在本届车展上&#xff0c;新能源品牌占比再创新高&#xff0c;覆盖两个展馆&#xff0c;印证了当下新能源汽车市场的火爆。作为大运集团重磅打造的高端品牌&#xff0c;远航汽车深度洞察高端智能…

记录一个问题~beego中的配置文件autorender

事情的经过是这样的: 在学习beego框架时,遇到了一个问题: tpl模板文件不显示内容; 原因所在: beego配置文件: appname hello httpport 8080 runmode dev world world dataSourceInfo root:955945tcp(localhost:3306)/gmusic?charsetutf8 #自动渲染 这里关闭后就关闭了自…

LeetCode 热题 100(六):25. K 个一组翻转链表、230. 二叉搜索树中第K小的元素、199. 二叉树的右视图

题目一&#xff1a; 25. K 个一组翻转链表https://leetcode.cn/problems/reverse-nodes-in-k-group/题目要求&#xff1a; 思路&#xff1a;建立虚拟头结点&#xff0c;并采用头尾节点&#xff0c;使用常规翻转的函数进行翻转。 具体见代码逻辑。 注意&#xff1a;一定注意好…