JavaScriptDemo——Day 23(数组扩展)

本文深入讲解了JavaScript中经典的算法实现,包括二分查找、对称数组判断、子串位置查找及最大连续子串长度计算。通过具体代码示例,帮助读者理解算法原理并提升编程技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // '123ab  ba321'
        // var str = '123abc';
        // var str1 = str.split('').reverse().join('');
        // var arr = [1,2,3,4,5,6,7,8,9];
        // console.log(arr.indexOf(9));
        // 二分法找元素下标
        // function binarySearch(orderArr,value){
        //     var low = 0,
        //         high = arr.length-1;
        //     while(low <= high){
        //         var mid = parseInt((high + low) / 2);
        //         if(orderArr[mid] == value){
        //             return mid;
        //         }else if(value > orderArr[mid]){
        //             low = mid + 1;
        //         }else if(value < orderArr[mid]){
        //             high = mid - 1;
        //         }else{
        //             return false;
        //         }
        //     }
        // }

        // // 对称数组
        // var arr1 = ['a', 'b', '1', '1', 'b', 'a']
        // var arr2 = ['a', 'b', '1', '5', 'b', 'a']

        // function test1(arr) {
        //     // 严谨判断
        //     if (arr == null) {
        //         return false;
        //     }
        //     for (var i = 0; i < arr.length; i++) {
        //         if (arr[i] !== arr[arr.length - 1 - i]) {
        //             return false;
        //         }
        //     };
        //     return true;
        // }

        // function test2(arr) {
        //     if (arr == null) {
        //         return false;
        //     }
        //     var low = 0;
        //     var high = arr.length - 1;
        //     while (true) {
        //         if (low >= high) {
        //             break;
        //         }
        //         if (arr[low] != arr[high]) {
        //             return false;
        //         };
        //         low++;
        //         high--;
        //     }
        //     return true;
        // }

        // // 查询子串首次出现的位置 

        // var str = 'afsafsafsafsabasbab';

        // function findSub(origin, sub) {
        //     if (!origin || !sub || origin == 0 || sub.length == 0) {
        //         return -1;
        //     }
        //     // 外层循环
        //     // 边界判断
        //     for(var i = 0; i <= origin.length - sub.length ; i ++){
        //         // 内层循环比较
        //         for(var j = 0 ; j < sub.length; j ++){
        //             if(origin[i + j] != sub[j]){ // j 变了 i 也要跟着走
        //                 break;
        //             }
        //             if(j == sub.length - 1){
        //                 return i;
        //             }
        //         }

        //     };
        //     return false;
        // }



        var arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 6, 7, 8];
        // 返回最大连续的子字符串的长度
        // 

        function find(arr) {
            var addNum = 0;
            var len = 0;
            for (var i = 0; i < arr.length + 1; i++) { // +1 任何数 > undefined --> > NaN -- > false
                // +1 必定为false
                if (arr[i] > arr[i - 1]) { // 第一次直接和 i- 1 --> undefined -- > addNum = 1
                    addNum++;
                } else {
                    len = addNum > len ? addNum : len;
                    addNum = 1;
                }
                // len = addNum > len ? addNum : len;
            }
            return len;

        }
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值