
数据结构与算法
Anyan-T
听千曲而后晓声,操千剑而后识器
展开
-
求两个int数组的中位数
//给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。 // // 进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗? // // // // 示例 1: // // 输入:nums1 = [1,3], nums2 = [2] //输出:2.00000 //解释:合并数组 = [1,2,3] ,中位数 2 // // // 示例 2: // // 输入:nums1 = [1,2], nums2 = [3,4] /原创 2020-12-27 22:42:09 · 161 阅读 · 0 评论 -
有效的括号—栈
1.题目描述 //给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 // // 有效字符串需满足: // // // 左括号必须用相同类型的右括号闭合。 // 左括号必须以正确的顺序闭合。 // // // 注意空字符串可被认为是有效字符串。 // // 示例 1: // // 输入: “()” //输出: true // // // 示例 2: // // 输入: “()[]{}” //输出: true // // // 示例 3: // // 输入: “(]原创 2020-12-17 23:52:16 · 94 阅读 · 0 评论 -
单链表反序
给一个单链表头指针,反序输出每个指针。 先看代码,如下: class reList(ActList *head){ ActList* p,q,r; //三个指针变量 p=head; q=p.next; head.next=null; while(q){ r=q.next; q.next=p; //反序 p=q; q=r; } q=head;//头指...原创 2018-09-24 16:33:07 · 277 阅读 · 0 评论 -
亲自参加了一次腾讯的面试 记录一个问题快慢指针算法快速找到单链表中间
快速找到未知长度的单链表的中间节点 普通方法就是遍历两次,第一次遍历得到链表长度,第二次遍历得到中间值。时间复杂度为1.5n。(这里需要强调1.5) 快速链表方法就是利用两个指针,慢指针每次移动一个数据,快指针每次移动两个数据。最外层的循环用快指针。当快指针遍历完后,内层慢指针刚好循环到一般。代码如下: class GetMidVaule(LinkList L, elmType *e){ Li...原创 2018-09-24 16:33:24 · 655 阅读 · 1 评论