连续座算法

Posted hellozyjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了连续座算法相关的知识,希望对你有一定的参考价值。

连续座算法

声明算法

        /// <summary>
        /// 判断是否存在指定座数量的连续座(算法)
        /// </summary>
        /// <param name="num">座位数量</param>
        /// <param name="dataSource">数据源</param>
        /// <param name="seatNos">符合条件的连续座位号</param>
        /// <returns></returns>
        private static bool IsExistContinuity(int num,int[] dataSource,ref int[] seatNos)
        {
            //初始连续座位号标识
            var initSeatNoFlog = 0;

            //初始连续座位号下标
            var initSeatNoSubscript = 0;

            //记录连续次数
            var recordConsecutiveTimes = 0;

            for (int i = 0; i < dataSource.Length; i++)
            {
                var temp = dataSource[i] - i;

                if (temp == initSeatNoFlog)
                {
                    recordConsecutiveTimes++;
                }
                else
                {
                    initSeatNoFlog = temp;
                    initSeatNoSubscript = i;
                    recordConsecutiveTimes = 1;
                }

                if (recordConsecutiveTimes != num) continue;

                Array.Copy(dataSource,initSeatNoSubscript,seatNos,0,num);

                return true;


            }
            return false;
        }

调用

        static void Main(string[] args)
        {
            //座位数据源
            var dataSource = new [] {1,3,4,5,7,9,10,17};

            var seatNos = new int[3];

            var result = IsExistContinuity(3, dataSource,ref seatNos);
            Console.WriteLine(result);

            Console.ReadKey();
        }

以上是关于连续座算法的主要内容,如果未能解决你的问题,请参考以下文章

计算某个生日是哪个星座的算法

算法竞赛入门码蹄集进阶塔335题(MT3330-3335)

用C语言和分治算法 求最近的两点的距离~

以下代码片段的算法复杂度

有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]

片段(Java) | 机试题+算法思路+考点+代码解析 2023