zoukankan      html  css  js  c++  java
  • 遇到的比较好的算法 收藏一下

    1、给定数据进行分组

    public void Test1()
    {
    var dataList = new[] {"a1:b1:c1", "a1:b2:c2:d1:", "a2:b2:c2:d2"}; 
    var root = new List<dynamic>();
     var dict = new Dictionary<string, dynamic>();//字典,方便搜索node 
    foreach (var data in dataList) 
    { 
    dynamic parent = null; 
    foreach (var name in data.Split(':')) 
    { 
    dict.TryGetValue(name, out var current); 
    if (current != null) 
    { 
    parent = current;
     continue;
     } 
    var node = new {name, child = new List<dynamic>()}; 
    if (parent == null)
     { 
    root.Add(node);
     } 
    else 
    {
     parent.child.Add(node);
     } 
    parent = node; 
    dict.Add(name, node);
     }
     } 
    Console.WriteLine(DefaultJsonSerializer.Instance.SerializeObject(root)); 
    }

    结果集合如下:

    "[{"name":"a1", "child":[{"name":"b1", "child":[{"name":"c1", "child":[]}]},{"name":"b2", "child":[{"name":"c2", "child":[{"name":"d1", "child":[{"name":"", "child":[]}]},{"name":"d2", "child":[]}]}]}]},{"name":"a2", "child":[]}]"

    2、动态规划法

    题目描述:

    你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

    给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。(在力扣网站刷题见到的一个很好的解法思想)

    示例: 输入: [2,7,9,3,1]
    输出: 12
    解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
      偷窃到的最高金额 = 2 + 9 + 1 = 12 。

    public static int Rob(int[] nums)
            {
                int prevMax = 0;
                int currMax = 0;
                int temp = 0;
                foreach (var x in nums)
                {
                    temp = currMax;
                    currMax = Math.Max(prevMax + x, currMax);
                    prevMax = temp;
                }
                return currMax;
            }

    感觉比较好,记录一下;

  • 相关阅读:
    由ORACLE:ORA-28001: the password has expired(密码过期)引起ODI资料库连接失败
    由ODI初始化资料档案库(RUC)引起修改ORACLE字符集(ZHS16GBK-AL32UTF8)
    如何面对被抛弃的System.Data.OracleClient
    CS231n 2016 通关 第二章-KNN 作业分析
    CS231n 2016 通关 第二章-KNN
    CS231n 2016 通关 第一章-内容介绍
    加特征加正则
    ML 徒手系列说明
    caffe 入门实例2 如何写一个模型
    caffe 入门实例3 fine-turning
  • 原文地址:https://www.cnblogs.com/wwr01/p/11928219.html
Copyright © 2011-2022 走看看