算法刷题
文章平均质量分 65
算法刷题
万俟淋曦
CSDN专家博主,阿里云专家博主,中国人工智能学会会员。分享机器人领域技术,包括SLAM,ROS,CV,DL等,助力机器人领域研究者成长进步,为我国机器人研发与制造领域添砖加瓦。
展开
-
[Hello World] 二分查找笔记
二分查找(BinarySearch)也称折半查找,它是一种效率较高的查找方法。原创 2022-08-02 00:13:48 · 150 阅读 · 0 评论 -
[Hello World] 素数筛C语言实现及优化
素数筛C语言实现及优化 一、概念 素数:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 素数筛:用素数标记合数(素数的整数倍都是合数),剩下的就是素数。 二、原理 规则:素数的整数倍都是合数,素数标记为0,合数标记为1。 步骤: 将所有数标记为0(可以理解为,将所有数放在一个筛子里)。 根据素数的整数倍都是合数原则,从第一个素数2开始,将素数的整数倍都标记为1(理解为,将合数筛掉,剩下素数)。 三、代码 1. 根据素数筛原理编写初步代码 #include <stdio.原创 2021-05-15 15:40:04 · 548 阅读 · 0 评论 -
[LeetCode] 1.两数之和
1. 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 2. 解题思路 选取数组 nums 中的第一个数 num,用 target 减去,得到 another_num,即 nu原创 2020-06-04 22:02:27 · 214 阅读 · 0 评论 -
[LeetCode] 724.寻找数组的中心索引
1. 题目描述 给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。 示例1: 输入: nums = [1, 7, 3, 6, 5, 6] 输出: 3 解释: 索引3 (nums[3] = 6) 的左侧数之和(1 + 7 + 3 = 11),与右侧数之和(5 + 6 = 11)相等原创 2020-06-02 10:47:27 · 208 阅读 · 0 评论 -
[Hello World] 选择排序笔记
1. 选择排序原理 在未排序序列中,不断选择最小值放到未排序序列的最前面(升序) 2. 选择排序过程 1.指针先指向第一个数 2.用第一个数与后面的数比较,如果第一个数小,指针不动,如果后面的数小,指针指向后面那个数 3.重复2的操作,直到把所有数遍历一遍找出了最小值 4.将最小值与第一个数交换位置 5.在未排序数列中重复2、3、4的操作 3. 代码 def selection_sort(our_list): length = len(our_list) for i in range(le原创 2020-05-30 16:39:28 · 261 阅读 · 0 评论 -
[Hello World] 冒泡排序笔记
1. 冒泡排序原理 不断比较两个相邻的元素,将较大的元素交换到右边(升序) 2. 过程 1.比较第1个数和第2个数,较大的放在右边 2.比较第2个数和第3个数,较大的放在右边 … … n-1.比较第(n-1)个数和第n个数,较大的放在右边 直到最后两个数比较完,整个数列的最大值已位于最右边(最大值就像水中的气泡一样,一直升到最右边) 至此,一个比较批次执行完毕,目的只是将未排序数列的最大值移到最右边。还要继续执行下一个批次,将剩余数字的最大值移到最右边,直到执行完所有批次。 一直重复上述步骤,不停的把未排原创 2020-05-30 16:32:55 · 303 阅读 · 0 评论