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

开心灿烂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
}

http://www.xdnf.cn/news/14152.html

相关文章:

  • 如何自动化测试 DependencyMatcher 规则效果(CI/CD 集成最佳实践)
  • 免费OCPP协议测试工具
  • FreeRTOS定时器
  • C++/OpenCV地砖识别系统结合 Libevent 实现网络化 AI 接入
  • 如何写出优秀的单元测试?
  • 17.vue.js响应式和dom更新
  • java33
  • Java重构实战:小步快跑的高效策略分析
  • 【嵌入式硬件实例】-555定时器实现烟雾和易燃气体泄露检测
  • JAVA-springboot 异常处理
  • 15故障排查
  • CAD中DWG到DXF文件解析(一)
  • ELK日志文件分析系统——E(Elasticsearch)
  • 【算法深练】二分答案:从「猜答案」到「精准求解」的解题思路
  • RT-Thread Studio SDK管理器安装资源包失败
  • 考研好?还是找工作好?
  • 灵界猫薄荷×贴贴诱发机制详解
  • 深度学习——基于卷积神经网络的MNIST手写数字识别详解
  • 【AS32系列MCU调试教程】驱动开发:AS32驱动库的集成与应用实例
  • Python经验,日志模块logging配置实现双重分割-同时添加时间和大小
  • Android 中 OkHttp 的自定义 Interceptor 实现统一请求头添加
  • BeckHoff_FB --> F_SEQ_X2_Robot 函数
  • Step-Audio-AQAA 解读:迈向「纯语音」交互的端到端 LALM 新里程
  • 【0.2 漫画操作系统原理】
  • 展开说说Android之Glide详解_源码解析
  • 通达信腾龙凤舞幅图指标公式
  • 前端异步编程基础
  • 经典蓝牙 vs BLE:10 大核心差异深度对比(附高频考点 + 大厂真题)
  • Kafka源码P1-消息ProducerRecord
  • LeetCode 第74题:搜索二维矩阵