![](https://img-blog.csdnimg.cn/20201124162445489.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构和算法
在计算机科学中,数据结构是计算机中存储、组织数据的方式。 数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。 大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成
小游66
这个作者很懒,什么都没留下…
展开
-
(二分查找)搜索插入位置
本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问我的解法emm,像我这么菜的人只能用暴力来算了。。func searchInsert(nums []int, target int) int { if target < nums[0] { return 0 } for k, v := range nums { if v == target { return k } if nums[k] < target && k+1 <.原创 2020-11-29 21:12:33 · 252 阅读 · 0 评论 -
(双指针)移除元素
本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问我的解法我这里直接偷懒,用的是go的字符串截取func removeElement(nums []int, val int) int { for i := 0; i < len(nums); i++ { if nums[i] == val { nums = append(nums[:i], nums[i+1:]...) i-- } } return len(nums)}双指针func rem.原创 2020-11-25 15:09:35 · 239 阅读 · 0 评论 -
(双指针法)删除排序数组中的重复项
本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问我的解法:我这里用的是最笨的暴力穷举法,一个一个判断,然后删除重复的元素func removeDuplicates(nums []int) int { for i := 0; i < len(nums); i++ { if indexArray(nums[i], nums) { // 这里说明存在重复,我们把所有的数据都往前移 for j := i; j < len(nums)-1; j++ { .原创 2020-11-25 15:09:02 · 180 阅读 · 0 评论 -
(栈)有效的括号
本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。代码如下package mainimport "log"func isValid(s string) bool { // 获取字符串长度 n := len(s) // 判断长度是否为偶数,如果不是直接返回false if n%2 == .原创 2020-11-25 15:08:32 · 107 阅读 · 0 评论 -
(字符串扫描)最长公共前缀
本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问题目内容编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。方法一: 横向扫描依次遍历字符串数.原创 2020-11-25 15:08:04 · 103 阅读 · 0 评论 -
(链表)合并有序链表
本文档为个人博客文档系统的备份版本、作者:小游、作者博客:点击访问题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题解我们这里利用到了一个前哨节点,因为两个链表实际上是已经排好序了,所以我们只需要比较两个节点谁大谁小,找到小的接上去,然后那个接上去的指针后移一位。实际代码如下 // 创建一个.原创 2020-11-25 15:07:19 · 268 阅读 · 0 评论