当前位置: 首页 > news >正文

开心灿烂go开发面试题

1.给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

package main

import “fmt”

type ListNode struct {
Val int
Next *ListNode
}

func main() {
l1 := &ListNode{Val: 1}
l2 := &ListNode{Val: 2}
l3 := &ListNode{Val: 3}
l4 := &ListNode{Val: 4}
l5 := &ListNode{Val: 5}
l1.Next = l2
l2.Next = l3
l3.Next = l4
l4.Next = l5
newlist := reverseList(l1)
for newlist != nil {
fmt.Print(newlist.Val)
if newlist.Next != nil {
fmt.Print(“,”)
}
newlist = newlist.Next
}
fmt.Println()
}

func reverseList(head *ListNode) *ListNode {
if head == nil || head.Next == nil {
return head
}
var prev *ListNode
cur := head
for cur != nil {
cur.Next, prev, cur = prev, cur, cur.Next
}
return prev
}

2.给你一个整数数组 nums 和一个整数 k 。你需要找到 nums 中长度为 k 的 子序列 ,且这个子序列的 和最大 。
请你返回 任意 一个长度为 k 的整数子序列。
子序列 定义为从一个数组里删除一些元素后,不改变剩下元素的顺序得到的数组。
示例1:
输入:nums = [2,1,3,3], k = 2
输出:[3,3]
示例2:
输入:nums = [-1,-2,3,4], k = 3
输出:[-1,3,4]
示例3:
输入:nums = [3,4,3,3], k = 2
输出:[3,4]
package main

import (
“fmt”
“sort”
“strconv”
“strings”
)

func main() {
//nums := []int{2, 1, 3, 3}
//k := 2
nums := []int{-1, -2, 3, 4}
k := 3
newSlice := SearchMaxSlice(nums, k)
fmt.Println(newSlice)
}

func SearchMaxSlice(nums []int, k int) []int {
n := len(nums)
temp := make([]int, n)
copy(temp, nums)
sort.Slice(temp, func(i, j int) bool {
return temp[i] > temp[j]
})
newtemp := temp[:k]
newslice := []int{}
newslicestr := fmt.Sprint(newtemp)
for _, v := range nums {
if len(newslice) == k {
break
}
if strings.Contains(newslicestr, strconv.Itoa(v)) {
newslice = append(newslice, v)
}
}
return newslice
}

3.给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。
子数组是数组中元素的连续非空序列。
示例1:
输入:nums = [1,1,1], k = 2
输出:2
示例2:
输入:nums = [1,2,3], k = 3
输出:2

func main() {
//slic := []int{1, 1, 1}
slic := []int{1, 2, 3}
k := 3
fmt.Println(calSliceCount(slic, k))
}

func calSliceCount(nums []int, k int) int {
count := 0
for i := 0; i < len(nums); i++ {
sum := 0
for j := i; j < len(nums); j++ {
sum += nums[j]
if sum == k {
count++
}
}
}
return count
}

相关文章:

  • C++/OpenCV地砖识别系统结合 Libevent 实现网络化 AI 接入
  • 雪豹速清APP:高效清理,畅享流畅手机体验
  • 【C++进阶篇】哈希的应用(位图)
  • 代码随想录算法训练营day4
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • CMake 构建系统概述
  • CAD中DWG到DXF文件解析(一)
  • Linux入门(十六)shellshell变量设置环境变量位置参数变量预定义变量
  • langchain_mcp_adapters - MultiServerMCPClient 获取工具
  • 全球化2.0|云轴科技ZStack联合Teleplex举办技术沙龙 · 吉隆坡站
  • Flask文件上传与异常处理完全指南
  • 【Qt】QStateMachine状态机-对状态机分组、历史状态,实现复杂状态机
  • Git命令与代码仓库管理
  • qt中自定义控件编译成动态库
  • RabbitMQ核心函数的参数意义和使用场景
  • 深入解析JVM字节码执行引擎
  • SpringBoot自动化部署实战指南
  • 5、ZYNQ PL 点灯--流水灯
  • Android 中 OkHttp 的自定义 Interceptor 实现统一请求头添加
  • Laravel 从版本 5 到 12 每个版本都引入了一些新的特性、改进和弃用的功能
  • 山东网站建设企业/百度关键词优化点击 教程
  • 北京4a广告公司有哪些/seo关键词大搜
  • 网站做外链软件/关键词检索
  • 厦门做企业网站比较好的公司/海外推广方法有哪些
  • wordpress内部跳转链接/杭州seo论坛
  • 广州网站设计提供商/seo优化关键词是什么意思