Java教程

【算法笔记】暴力匹配双重循环的循环条件总结

本文主要是介绍【算法笔记】暴力匹配双重循环的循环条件总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

        暴力匹配中常常会用到双重循环,而匹配的形式不同,循环的条件也会不同。以下时两种暴力匹配的形式。

1.有序匹配:即匹配(a1,a2)不等同于(a2,a1)。则使用以下循环;
                                                

for(i=0;i<n;i++)
{
    for(j=0;j<n;j++)
}

2.无序匹配:即匹配(a1,a2)等同于(a2,a1)。则使用以下循环;

for(i=0;i<n-1;i++)
{
    for(j=i;j<n;j++)
}

以上可以看出二者的两个区别:

        第一,有序匹配的内循环要从0开始,而无序匹配的内循环要从i开始;

        第二,有序匹配外循环要重复n次即所有元素都要参与外循环匹配,无序匹配外循环只重复  n-1次,其中第n个元素无需参加外循环;

值得注意的是当匹配需要跳过自身匹配,即(ai,ai)时,无序匹配应该从i+1开始扫描。

参考练习题:leetcode #1 两数之和

这篇关于【算法笔记】暴力匹配双重循环的循环条件总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!