算法题3

5.爬楼梯:

时间复杂度:循环执行n次,每次花费常数的时间代价,即O(n)、空间复杂度:常数个变量作为辅助空间,即O(1);

class Solution{
  public int climbStairs(int n){
       int 0, 0, 1;
       for(int 1; <= n ; i++){
           q;            
           r;            
           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;
  }
}

 

posted @ 2021-09-26 21:53  碧水斜茶  阅读(46)  评论(0编辑  收藏  举报