- 博客(10)
- 收藏
- 关注
原创 leetcode1566重复至少K次且长度为M的模式
思路:bool containsPattern(vector<int>& arr, int m, int k) { int n=arr.size(); int i=0,j=i+m; int t=j; int sum=0; while (j<n) { if (arr[i]==arr[j]) { i++; j++; if (i==t) { sum++; t=j; if (sum==k-1) return t...
2022-02-26 16:55:28 137
原创 leetcode949给定数字能组成的最大时间
小白写法,通俗易懂class Solution {public: string largestTimeFromDigits(vector<int>& arr) { int ans=0; int sum=0; int flag=0; string s1,s2,s3,s4; for (int i=0;i<4;i++) { for (int j=0;j<4;j
2022-02-25 13:22:58 145
原创 N皇后问题
相信大家对N皇后问题一定不陌生,网上的代码都是基于斜率来做的,也就是|y1-y2|=|x1-x2|,根据数学知识,理解这个做法并不难,今天老师讲课时,提到了另一种写法,便回来尝试了一下,发现写法比上面那种复杂了一点,但是也算是一个收获吧,自己动手写印象更深刻~我们知道|y1-y2|=|x1-x2|,其实也就是x1+y1=x2+y2或者x1-y1=x2-y2,不妨就定义这么两个数组,如果新来的x,y相加或者相减等于这两个数组中的数,说明不可以放进去,反之则可以#include <iostrea
2021-12-09 17:26:08 155
原创 冒泡排序--C++实现
冒泡排序,两两对比,如果顺序错了,就交换,第一次冒泡完,最大的一个元素已经移到最后面,第二轮排序最后一个元素不用参与排序,以此类推代码如下#include <iostream>using namespace std;void bubblesort(int a[], int n) { int t; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i -1; j++) { if (a[.
2021-09-16 16:19:33 116
原创 快速排序--C++实现
假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。 3 1 2 5 4 6 9 7 10 8 在初始状态下,数字6在序列的第1位。我们的目标是将6挪到序列中间的某个位...
2021-09-13 19:42:33 67
原创 辗转相除法求最大公约数和最小公倍数
#include<stdio.h>int gcd(int a, int b) { return (b ? gcd(b, a % b) : a);}int main() { int a, b; while (~scanf("%d%d", &a, &b)) { printf("gcd(%d %d) = %d\n",a, b, gcd(a, b)); } return 0;}
2021-09-04 20:39:55 49
原创 通过逻辑与、逻辑或控制打印格式
当题目要求我们每两个数字之间有空格时(即每个数字后面都有空格,最后一个数字没有空格)除了可以用if条件判断是否为最后一个元素include <stdio.h>int main() { for (int i = 0; i < 10; i++) { printf ("%d", i); if (i != 9) { printf (" "); } } return 0;}或者是第一个
2021-09-04 12:44:02 67
原创 回文数字--小白写法
#include<stdio.h>int main() { int n; int a; scanf("%d", &n); a = n; int t = 0; while (n) { t = t*10 + n%10; n = n/10; } if (a == t) { printf("true"); }else { printf("false");.
2021-09-04 10:49:44 78
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人