• 算法分析与设计第二次作业总结


    本来以为这门课没啥学的,结果还是自己太大意,还有很多东西不会...

    1.4.2:防止两个大的int相加溢出,只要在第一个int前面加一个强制类型转换(long)即可,后面的加法运算就会按照最小精度(long)来进行。

    1.4.4的这个三重循环还有点问题。

    1.4.5的g题也不太明白

    1.4.8学到了java的二分查找,binarysearch.rank()

    1.4.15学到了两头逼近的查找技巧,大了high--小了low++,以及其拓展版本ThreeSumFaster

    using System;
    
    namespace _1._4._12
    {
        /*
         * 1.4.12
         * 
         * 编写一个程序,有序打印给定的两个有序数组(含有 N 个 int 值) 中的所有公共元素,
         * 程序在最坏情况下所需的运行时间应该和 N 成正比。
         * 
         */
        class Program
        {
            static void Main(string[] args)
            {
                int[] a = new int[4] { 2, 3, 4, 10 };
                int[] b = new int[6] { 1, 3, 3, 5, 10, 11 };
    
                //2N 次数组访问,数组 a 和数组 b 各遍历一遍
                for (int i = 0, j = 0; i < a.Length && j < b.Length; )
                {
                    if (a[i] < b[j])
                    {
                        i++;
                    }
                    else if (a[i] > b[j])
                    {
                        j++;
                    }
                    else
                    {
                        Console.WriteLine($"Common Element:{a[i]}, First index: (a[{i}], b[{j}])");
                        i++;
                        j++;
                    }
                }
    
            }
        }
    }
  • 相关阅读:
    Uploadify v3.2.1 上传图片并预览
    mybatis批量操作
    500 拦截错误输出
    jsnop
    java目录
    设置360调用样式 IE调用样式
    Spring加载resource时classpath*:与classpath:的区别
    context:annotation-config 与context:component-scan
    Andriod调用http请求
    JDK环境变量
  • 原文地址:https://www.cnblogs.com/legendcong/p/9764123.html
Copyright © 2020-2023  润新知