算法题

作者: 疯子一样男人 | 来源:发表于2021-10-01 08:37 被阅读0次

第一题:逆波兰表达式

来源https://blog.csdn.net/qq_36237037/article/details/106629009

第二题.题目描述

来源https://blog.csdn.net/qq_36237037/article/details/106644664

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

一 思路一 最笨方法

将所有节点添加到一个数组中 

对数组中的节点从小到大进行排序

从数组中从小到大依次取出节点,串成链表

二 思路二 逐一比较

第一步:找到所有链表中的最小的一个结点

把这个结点赋值给创建的链表的head,然后再把最小的链表的下一个结点赋值给这个链表,然后有一个while循环,直到所有链表 不满足条件,不赋值为止,跳出循环。

/// 方法二 逐一比较

- (LinkNode *)mergeManyLists2:(NSMutableArray<LinkNode *> *)linkNodes {

    if (linkNodes == nil || linkNodes.count == 0) {

        return nil;

    }

    LinkNode *head = [[LinkNode alloc] init];

    LinkNode *cur = head;

    while (true) {

        int minIndex = -1;

        for (int i = 0; i < linkNodes.count; i++) {

            if (linkNodes[i] == nil || linkNodes[i].element == nil) {

                continue;

            }

            if (minIndex == -1 || linkNodes[i].value < linkNodes[minIndex].value) {

                minIndex = i;

            }

        }

        if (minIndex  == -1) {

            break;

        }

        cur = cur.next = linkNodes[minIndex];

        linkNodes[minIndex] = linkNodes[minIndex].next;

    }

    return head.next;

}

方法三递归有点问题应该使用

因为递归的时间复杂度是2的n次方,上面的方式是kn

第一种时间复杂度是O(nlogn)

空间复杂度是:O(n)

第二种时间复杂度是O(kn)

第三种时间复杂度是:O(kn)

第四种时间复杂度是:O(nLogk)

空间复杂度是O(k)

第五种时间复杂度是O(nlogk)

相关文章

  • Android面经| 算法题解

    整理了校招面试算法题,部分《剑指offer》算法题,以及LeetCode算法题,本博文中算法题均使用Java实现校...

  • 面试题高频算法题整理

    以下算法题几乎都是简单题,都为面试算法题值得刷的题,需要理解并记住解题思路,而其中★标注的题,更是面试算法题中的高...

  • 回溯,贪心,动态规划

    1.回溯算法思想leetcode 112 号算法题:路径总和leetcode 113 号算法题:路径总和 IIle...

  • 算法题

    一、对一组数据进行降序或者升序排序(冒泡算法) intnums[10] = {4,5,1,10,7,1,8,3,6...

  • 算法题

    现在有一个字符串 string,它是一段英文,要求你统计这段英文里每个字母出现的次数。*例如输入 'Hello',...

  • 算法题

    名企笔试:网易2017春招笔试(工作安排)【http://mp.weixin.qq.com/s/y08d3WhZK...

  • 算法题

    写一个方法 获取一个字符串的长度? 写一个冒泡排序 数组去重 javascript实现格式化输出,比如输入9999...

  • 算法题

    1.求出1-100累加的和 2.求出1-100中奇数相加的和 3.求1000以内的斐波那契数 4.求1000以内的素数

  • 算法题

    1、求二进制数字中1的个数 自带库 (binary_num).count('1') 按位运算符有:左移运算符(<<...

  • 算法题

    1. 租金卡大放送 题目:“司庆大放送,一元即租房”,司庆当日,签约入住的客户,住满30天,返还(首月租金-1元)...

网友评论

      本文标题:算法题

      本文链接:https://www.haomeiwen.com/subject/ppfynltx.html