![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
LeetCode
LeetCode 刷题
Ming Xu
数学和算法编程
展开
-
两数之和 twoSum
given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1]. std::vector<int> twoSum(std::vector<int>& nums, int target) { for (int i=0;i<nums.size();i++) { for (int j原创 2021-08-04 22:45:19 · 80 阅读 · 0 评论 -
链表反转输出
输入一个链表,从尾到头打印链表每个节点的值。void listReverse(std::list<int> &mylist){ std::stack<int> mystack; if(mylist.empty()) //判断list是否为空,如果没有判断即便链表为空后面仍会执行一遍cout return; std::list<int>::iterator it = mylist.begin(); while(it原创 2021-08-03 13:48:41 · 193 阅读 · 0 评论 -
字符串替换
将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。std::string replaceSpace(std::string &str){ int pos = 0; while (pos != -1){ pos = str.find(' ', pos); if (pos == -1){ break; } str原创 2021-08-02 23:57:32 · 59 阅读 · 0 评论 -
二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列按扎从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断这个数组中是否含有这个整数。[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5, 返回 true给定 target = 20, 返回 false// 暴力查找bool findN原创 2021-07-24 07:57:42 · 89 阅读 · 0 评论 -
找出数组中任意一个重复的数字
问题描述 找出数组中重复的数字 在一个长度为 n 的数组 nums 里的所有数字都在 0 ~ n-1 的范围内,数组中某些数字是重复的,但是不知道有几个数字重复也不知道每个数字重复几次,请找出数组中任意一个重复的数字#include <iostream>#include <vector>#include <algorithm>bool findRepeatNumberVec(std::vector<int>& nums, std.原创 2021-07-22 11:49:16 · 114 阅读 · 0 评论 -
01 求一个数中最大的质因数
13195 的所有质因数为 5, 7, 13, 29.求 6008514175143 的最大质因数是多少?#include <iostream>long primeFactors(long number){ if (number == 1){ return 1; } for (int i=2;i<number;i++){ if (number % i == 0){ return primeFactors原创 2021-07-21 13:53:12 · 71 阅读 · 0 评论 -
Quick Sort
Quick Sort首先设定一个分界值,通过该分界值将数组分成左右两部分。将大于等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时 ,左边部分中各元素都小于等于分界值,而右边部分中各元素都大于等于分界值。然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放贯较小值,右边放置较大值。右侧的数组数据也可以做类似...原创 2020-03-08 17:34:15 · 82 阅读 · 0 评论 -
Shell Sort
Shell 排序算法严格来说基于插入排序思想,又称希尔排序或缩小增量排序.Shell 排序的算法流程为:将 有 0 个元素的数组分成 n2\frac{n}{2}2n 个数字序列第 1 个 数 据 和 第 ~ 2 + 1 个数据为一对,… 。(2) 一次循环使每一个序列对排好顺序。( 3 ) 然后,再 变 为 ~ 4 个序列,再次排序。(4) 不断重复上述过程,随着序列减少最后变为 1...原创 2020-03-02 14:00:27 · 119 阅读 · 0 评论 -
InsertionSort
InsertionSort首先对数组的前两个数据进行从小到大的排序。接 着 将 第 3 个数据与排好序的两个数据比较,将 第 3 个数据插入到合适的位置。然后 ,将 第 4 个数据插入到已排好序的前 3 个数据中。不断重复上述过程,直到把最后一个数据插入合适的位置。最后,便完成了对原始数组从小到大的排序。#include <iostream>#include <c...原创 2020-02-28 21:28:15 · 183 阅读 · 0 评论 -
SelectionSort
SelectionSort首先从原始数组中选择最小的一个数据,将 其 和 位 于 第 1 个位置的数据交换。接着从剩 下的 ^ 1 个数据中选择次小的一个元素,将 其 和 第 2 个位置的数据交换。然后 ,这样不断重复,直到最后两个数据完成交换。最后,便完成了对原始数组从小到大的排序。#include <iostream>#include <cstdlib>...原创 2020-02-27 21:02:35 · 133 阅读 · 0 评论 -
Bubble Sort
Bubble Sort对数组中的各数据,依次比较相邻的两个元素的大小。如果前面的数据大于后面的数据,就交换这两个数据。经过第一轮的多次比较排序后,便可把最小的数据排好。然后 ,再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组中各数据的顺序#include <iostream>#include <cstdlib>#include ...原创 2020-02-26 20:08:16 · 359 阅读 · 0 评论 -
顺序查找
查找算法查找 (Search) 是指从一批记录中找出满足条件的某一条记录的过程,查找又称为检索.顺序查找顺序查找比较简单,执行的操作是从数据序列中的第 1 个元素开始,从头到尾依次逐个查找,直到找到所要的数据或搜索完整个数据序列,顺序查找主要针对少量、无规则的数据。对于包含 n 个数据的数据序列,使用顺序查找的方法查找数据最理想的情况是目标数据位于数组的第 1 个,这样比较一次找到目标数...原创 2020-03-08 11:59:19 · 214 阅读 · 0 评论 -
折半查找
折半查找有些数据序列是经过排序的,或者可以经过排序呈现某种线性结构,这样可以不用逐个比较查找,可以采用折半查找提高查找效率。折半查找 (Binary Search) 又称二分查找,要求数据序列呈线性结构,也就是经过排序的,对没有经过排序的,可以先通过排序算法进行排序,然后再执行折半查找。#include <iostream>#include <cstdlib>#i...原创 2020-03-08 17:03:16 · 117 阅读 · 0 评论 -
查找
查找: 在一些数据元素中,通过一定的方法找出与给定关键字相同的数据元素的过程.列表查找 (线性查找): 从列表中查找指定的元素输入: 列表、 待查找的元素输出: 元素下标 (未找到元素时一般返回 None 或者 -1)内置列表查找函数: index顺序查找(Linear Search): 也叫线性查找,从列表第一个元素开始,顺序进行搜索,直到找到元素或者搜索到列表最后一个元素为止.时间算法复杂度 O(n)def linear_search(nums, val): """原创 2020-09-06 19:55:16 · 148 阅读 · 0 评论