算法题3
2021/9/26 22:10:51
本文主要是介绍算法题3,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
5.爬楼梯:
时间复杂度:循环执行n次,每次花费常数的时间代价,即O(n)、空间复杂度:常数个变量作为辅助空间,即O(1);
class Solution{ public int climbStairs(int n){ int p = 0, q = 0, r = 1; for(int i = 1; i <= n ; i++){ p = q; q = r; r = p + q; } return r; } }
6.合并两个有序链表:
使用迭代法,将两个链表的最小值添加到结果中,随后将对应链表中的节点向后移一位,当循环终止时,L1和L2最多有一个是非空的,只需要简单地将非空链表接在合并链表的后面,返回合并链表即可。时间复杂度为O(m+n),m和n是两个链表的长度,空间复杂度为O(1),我们只需要常数的空间存放若干变量;
class Solution{ public ListNode mergeTwoLists(ListNode l1, ListNode l2){ ListNode prehead = new ListNode(-1); ListNode prev = prehead; while(l1 != null && l2 != null){ if(l1.val < l2.val){ prev.next = l1; l1 = l1.next; }else{ prev.next = l2; l2 = l2.next; } prev = prev.next; } prev.next = l1 == null ? l2 : l1; return prehead.next; } }
这篇关于算法题3的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南