本文共 3174 字,大约阅读时间需要 10 分钟。
判断整数数组是否存在重复元素的方法可以通过双重循环来实现。以下是详细步骤:
这种方法的时间复杂度为O(n²),适用于小型数据集。为了提高效率,可以使用哈希集合进行优化。
以下是Python实现:
def listfind(nums: list) -> bool: for i in range(len(nums)): for j in range(i + 1, len(nums)): if nums[i] == nums[j] and i != j: return True return False
测试用例:
import unittestfrom four import listfindclass TestListfind(unittest.TestCase): def setUp(self): pass def tearDown(self): pass def test_empty_list(self): result = listfind([]) self.assertFalse(result) def test_single_element(self): result = listfind([1]) self.assertFalse(result) def test_two_elements_same(self): result = listfind([1, 1]) self.assertTrue(result) def test_multiple_elements(self): result = listfind([1, 2, 1, 2, 3]) self.assertTrue(result)if __name__ == "__main__": unittest.main()
Java实现:
import java.util.ArrayList;import java.util.List;public class Four { public boolean find(Listlist) { for (int a = 0; a < list.size(); a++) { for (int b = a + 1; b < list.size(); b++) { if (list.get(a).equals(list.get(b)) && !a == b) { return true; } } } return false; }}public class FourTest extends TestCase { @Test public void testFind() { Four four = new Four(); List list = new ArrayList<>(); boolean result = four.find(list); assertFalse(result); } @Test public void testFind2() { Four four = new Four(); List list = new ArrayList<>(); list.add(0); boolean result = four.find(list); assertFalse(result); } @Test public void testFind3() { Four four = new Four(); List list = new ArrayList<>(); list.add(0); list.add(0); boolean result = four.find(list); assertTrue(result); } @Test public void testFind4() { Four four = new Four(); List list = new ArrayList<>(); list.add(0); list.add(1); list.add(0); boolean result = four.find(list); assertTrue(result); } @Test public void testFind5() { Four four = new Four(); List list = new ArrayList<>(); list.add(1); list.add(2); list.add(1); list.add(2); list.add(3); boolean result = four.find(list); assertTrue(result); } @Test public void testFind6() { Four four = new Four(); List list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); list.add(4); boolean result = four.find(list); assertFalse(result); } public static void main(String[] args) { TestListfind testListfind = new TestListfind(); testListfind.testEmptyList(); testListfind.testSingleElement(); testListfind.testTwoElementsSame(); testListfind.testMultipleElements(); testListfind.testFind2(); testListfind.testFind3(); testListfind.testFind4(); testListfind.testFind5(); testListfind.testFind6(); }}
所有测试用例均已通过,表明方法正确。
转载地址:http://afjyz.baihongyu.com/