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

大模型平台后端开发(xiaomi)

文章目录

  • 算法题

算法题

1 三数之和 (注意去重的边界条件,过几天再刷几次)
2 长度最小的子数组 (代码随想录题目,滑动窗口)
3 用链表实现栈

package mainimport ("errors""fmt"
)// Node 定义链表节点
type Node struct {data intnext *Node
}// Stack 定义栈结构
type Stack struct {top *Node
}// NewStack 创建一个新的空栈
func NewStack() *Stack {return &Stack{nil}
}// Push 将元素压入栈顶
func (s *Stack) Push(data int) {s.top = &Node{data, s.top}
}// Pop 移除并返回栈顶元素
func (s *Stack) Pop() (int, error) {if s.top == nil {return 0, errors.New("stack is empty")}data := s.top.datas.top = s.top.nextreturn data, nil
}// Traverse 遍历栈中的元素
func (s *Stack) Traverse() {for current := s.top; current != nil; current = current.next {fmt.Print(current.data, " ")}fmt.Println()
}func main() {stack := NewStack()// 推送元素stack.Push(1)stack.Push(2)stack.Push(3)// 遍历栈stack.Traverse() // 输出: 3 2 1// 弹出元素data, err := stack.Pop()if err == nil {fmt.Println("Pop:", data) // 输出: Pop: 3}// 再次遍历栈stack.Traverse() // 输出: 2 1
}

4 基础计算器

//标题
//10以内正整数的加乘括号运算的求解
//
//题目描述
//9+((8*2+3)+1)*2=
func opsSort(ops string) int {switch ops {case "*":return 2case "+":return 1default:return 0}
}func calc(nums []int, ops []string) (nums1 []int, ops1 []string) {right, left := nums[len(nums)-1], nums[len(nums)-2]nums = nums[:len(nums)-2]op := ops[len(ops)-1]ops = ops[:len(ops)-1]switch op {case "+":nums = append(nums, left+right)case "*":nums = append(nums, left*right)}return nums, ops
}func MathResult(raw string) int {paramStack, opsStack := make([]int, 0), make([]string, 0)for _, s := range raw {str := string(s)n, err := strconv.Atoi(str)if err == nil {paramStack = append(paramStack, n)} else {switch string(s) {case "(":opsStack = append(opsStack, str)case ")":for opsStack[len(opsStack)-1] != "(" {paramStack, opsStack = calc(paramStack, opsStack)}opsStack = opsStack[:len(opsStack)-1]case "+", "*":for len(opsStack) > 0 && opsSort(str) <= opsSort(opsStack[len(opsStack)-1]) {paramStack, opsStack = calc(paramStack, opsStack)}opsStack = append(opsStack, str)}}}for len(opsStack) > 0 {paramStack, opsStack = calc(paramStack, opsStack)}return paramStack[0]
}func main() {var a stringfmt.Scan(&a)// a := "8*2+3"// a := "9+((8*2+3)+1)*2"// a := "2*(3+4)"fmt.Println(MathResult(a))
}
http://www.lryc.cn/news/350656.html

相关文章:

  • 性能测试工具—jmeter的基础使用
  • 前端 JS 经典:CommonJs 规范
  • 三分钟速览量化交易系统:揭秘QMT与Ptrade(内附免费提供渠道)
  • 处理QTcpSocket接收到数据的槽函数
  • 回归的无分布预测推理
  • 有限域中的一些概念
  • 使用css的box-reflect属性制作倒影效果
  • ChatGPT 4o 使用案例之一
  • 【免费Web系列】大家好 ,今天是Web课程的第一天点赞收藏关注,持续更新作品 !
  • C++|树形关联式容器(set、map、multiset、multimap)介绍使用
  • springboot整合s3,用ImageIO进行图片格式转换
  • Windows 10无法远程桌面连接:原因及解决方案
  • 图神经网络实战(10)——归纳学习
  • Python——IO编程
  • 什么是网络端口?为什么会有高危端口?
  • CleanMyMac X v4.14.6中文破解版,让您的电脑像新的一样
  • LeetCode 235. 二叉搜索树的最近公共祖先
  • 基于ASN.1的RSA算法公私钥存储格式解读
  • RS2227XN功能和参数介绍及PDF资料
  • 机器人非线性阻抗控制系统
  • pandas style添加表格边框,或是只添加下边框等自定义边框样式设置
  • OpenHarmony 3GPP协议开发深度剖析——一文读懂RIL
  • windows部署腾讯tmagic-editor02-Runtime
  • “分块”算法的基本要素及 build() 函数的构建细节
  • 畅捷通TPlus keyEdit.aspx、KeyInfoList.aspx SQL注入漏洞复现
  • Ubuntu22 下配置 Qt5 环境
  • 普通人也能创业!轻资产短视频带货项目,引领普通人实现创业梦想
  • 【Maven】Nexus简单使用
  • winform嵌入excel 设置父窗体分辨率不是100% 嵌入excel分辨率变成双倍大小
  • 前端系列-4 promise与async/await与fetch/axios使用方式