![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
淡年华零
这个作者很懒,什么都没留下…
展开
-
排序——922. 按奇偶排序数组 II
地址:https://leetcode-cn.com/problems/sort-array-by-parity-ii/给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。提示:2 <= A.lengt原创 2021-06-15 11:10:31 · 282 阅读 · 0 评论 -
排序——349. 两个数组的交集
地址:https://leetcode-cn.com/problems/intersection-of-two-arrays/给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。题解:用哈希集合的方法,则可以在 O(1)的时间内判原创 2021-06-15 10:36:58 · 218 阅读 · 0 评论 -
排序——242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false方法一:排序t是 s 的异位词等价于「两个字符串排序后相等」。因此我们可以对字符串 s 和 t分别排序,看排序后的字符串是否相等即可判断。此外,如果 s 和 t 的长度不同,t 必然不是 s 的异位词。class Solution { pu原创 2021-06-15 09:39:14 · 209 阅读 · 0 评论 -
括号匹配算法
问题: 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须与相同类型的右括号匹配,左括号必须以正确的顺序匹配。例如,{ [ ( ) ( ) ] } 是合法的,而 { ( [ ) ] } 是非法的。解析: 这个问题很显然是栈发挥价值的地方。原因是,在匹配括号是否合法时,左括号是从左到右依次出现,而右括号则需要按照“后进先出”的顺序依次与左括号匹配。因此,实现方案就是通过栈的进出来完成。具体为,从左到右顺序遍历字符串。当出现左括号时,压原创 2021-06-08 09:17:33 · 3979 阅读 · 0 评论 -
快速排序——java
快速排序简单思路可以理解为,运用一趟排序,将数组分为独立的两个部分,其中一个部分的所有元素都比另一个部分的所有元素小(每一部分中的元素不需要区分大小),再运用递归的思想继续分别排序两个部分,以此类推,直到排完所有元素。我之前用c++实现过,这次用java重现一下,在实现的过程中。发现了一些问题。import java.util.*;import java.io.*;public class QuickSort { static void swap ( int [] data, i原创 2021-03-17 10:10:31 · 89 阅读 · 0 评论 -
前缀和
什么是前缀和原数组: a[1], a[2], a[3], a[4], a[5], …, a[n]前缀和 Si为数组的前 i项和前缀和: S[i] = a[1] + a[2] + a[3] + … + a[i]注意: 前缀和的下标一定要从 1开始, 避免进行下标的转换s[0] = 0s[1] = a[1]s[2] = a[1] + a[2]前缀和的作用快速求出元素组中某段区间的和一维数组求解前缀和(Si)for循环求出 每个S[i] (将 S[0] 定义为 0, 避免下标的转换)原创 2021-01-30 12:35:45 · 360 阅读 · 2 评论 -
大数加法
这个大数加法python和java有专门的方法,例如java可以用BigDecimal类例如:private static void add2Sum(String s1, String s2) { System.out.println("-----------"); BigDecimal b1 = new BigDecimal(s1); BigDecimal b2 = new BigDecimal(s2) System.out.println原创 2021-01-30 10:44:12 · 131 阅读 · 0 评论 -
整数二分算法模板
整数二分算法模板bool check(int x) {/* ... */} // 检查x是否满足某种性质// 区间[l, r]被划分成[l, mid - 1]和[mid, r]时使用:int bsearch_2(int l, int r){ while (l < r) { int mid = l + r + 1 >> 1; if (check(mid)) l = mid; else r = mid - 1; .原创 2021-01-29 12:35:16 · 183 阅读 · 0 评论 -
归并排序
归并排序——分治1.确定分界点:mid = (left +right)/ 22.递归排序: left right 分别同时进行递归3.归并——合二为一#include<iostream>using namespace std;int n;const int N = 1000010;int q[N],tmp[N]; void merge_sort(int q[], int l, int r) { if(l >= r) return;原创 2021-01-29 10:25:48 · 70 阅读 · 0 评论 -
快速排序
#include<iostream>using namespace std;const int N = 1e6 + 10;int n;int q[N];void quick_sort(int q[], int l, int r){ if (l >= r) return; int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i +原创 2021-01-27 12:43:48 · 58 阅读 · 0 评论 -
螺旋矩阵
一,代码#include"iostream"#include"vector"using namespace std; vector<int> a;void add(const vector< vector<int> >& m) { int row = m.size(); int col = m[0].size(); int left =0 ,top = 0, right = col -1 ,bottom = row -1;原创 2020-06-06 16:56:47 · 131 阅读 · 0 评论 -
面经--湖南大学
今天是我第一次线上面试,是与湖南大学的一名教授进行线上面试,刚开始还是很紧张的,我先是中英文做了一下自我介绍,然后跟老师谈了一下自己的项目经历,然后就是老师问我的一些基础知识,我确实没有准备太好,基础知识都忘记了,在这里做一下自我检讨,下面是导师问我的一些基础知识:1.直接插入排序插入排序将数列划分为“已排序的”和“未排序的”两部分,每次从“未排序的”元素中选择一个插入到“已排序的”元素中的正...原创 2020-04-15 17:46:11 · 736 阅读 · 10 评论 -
字母图形
问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFGBABCDEFCBABCDEDCBABCDEDCBABC这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。输入格式输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。输出格式输出n行,每个m个字符,为你的图形。样例输入5 7样例输出ABCDEFGBABCDE...原创 2020-03-20 22:53:35 · 92 阅读 · 0 评论 -
基础练习 01字串
问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。输入格式本试题没有输入。输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。样例输出00000000010001000011<以下部分省略>#include &l...原创 2020-03-20 22:13:20 · 119 阅读 · 0 评论 -
C++二进制完成加减乘除
首先介绍计算机的二进制码二进制常用的有原码,反码和补码,他们都是由最左边的一个符号位和右边的数值位构成。在计算机中为了更低成本的计算,数据都是用补码来存储和运算的。原码最高位表示符号位(0代表正数,1代表负数)。剩下的位数,是这个数的绝对值的二进制。比如 一个int变量大小为4字节,在32位的编译器中的二进制表示就是00000000 00000000 00000000 00000000...原创 2020-03-20 20:42:27 · 1418 阅读 · 2 评论