算法 1

算法

merge-two-sorted-lists

解决办法: 递归

  public class Solution{
public ListNode mergeTwoLists(ListNode l1,ListNode l2){
    if(l1==null){
    return l2;
    }
    if(l2==null){
    return l1;
    }
    ListNode mergeHead;
    if(l1.val<l2.val){
    mergeHead=l1;
    mergeHead.next=mergeTwoLists(l1.next,l2);
    }else{
    mergeHead=l2;
    mergeHead.next=mergeTwoLists(l1,l2.next);
    }
    return mergeHead;
    }
}

解决方法:backtracking solution(回溯法)
此例运用递归回溯的方式

   public List<String> generateParenthesis(int n){
      List<String> list =new ArrayList<String> ();
      backtrack(list,"",0,0,n);
      return list;
}
public void backtrack(List<String> list,String str,int open,int close,int max){
    if(str.length()==max*2){
    list.add(str);
    }
    if(open<max)
    backtrack(list,str+"(",open+1,close,max);
    if(close<open)
    backtrack(list,str+")",open,close+1,max); 
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 杂谈 授课形式: 每周三个学时, 讲解基本理论和方法; 上机27学时: 45分钟习题课, 45分钟上机实践; 课程...
    陈码工阅读 1,685评论 3 0
  • 首先我们考虑的排序算法有,选择、冒泡、Shell、合并、快速排序我是自定义了一个Sort 类,然后其他的排序都继承...
    LeeDev阅读 545评论 0 2
  • 1、 对以下一组数据进行降序排序(冒泡排序)。“24,80,35,8,9,54,76,45,5,63” int ...
    面条168阅读 685评论 0 3
  • 原理 AStar 使用 F = G + H 来评估一个节点。其中 G 代表起始节点到这个节点的代价,H 代表目的节...
    贾佳菊阅读 9,053评论 2 8