- 博客(21)
- 收藏
- 关注
原创 链表用数组实现
单链表相关操作:#include<iostream>using namespace std;const int N=100010;int head,e[N],ne[N],idx;//head表示头结点的下标,//e[i]表示节点的值,//ne[i]表示下一个点的下标是什么,//idx是一个指针,存储当前用到了哪个点//对链表初始化void init(){ head=-1;//刚开始的时候链表是空的,head就指向空集,那个空集的下标记作-1 idx.
2022-09-27 19:58:57
412
原创 判断f是不是x进制下的回文数
法一:bool ish(int f,int x){ int u=f,y=0; while(u) { y=y*x+u%x; u/=x; } if(y==f) return true; else return false;}法二:bool ish(int f,int x)//判断f在x进制下是不是回文数{ int u=f; stack<int>stk; while(u)
2022-05-28 17:44:53
72
原创 字符数组头歌练习
输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。#include<stdio.h>#include <string.h>int main(void){ /*********Begin*********/ char s[1010]; while(1) { gets(s); if(
2022-05-14 14:32:05
1257
原创 算法基础—前缀和与差分
一.前缀和:(主要记公式)(1).一维前缀和:比较简单,求数组[l,r]之间所有元素之和:s[r]-s[l-1];(2).二维前缀和(求子矩阵的和)a.左上角是(1,1),右下角是(i,j):红色部分的和:下边是这个公式的来源:b.左上角是(x1,y1),右下角是(x2,y2):蓝色部分之和:下边是这个公式的来源:二.差分:...
2022-05-05 12:59:51
160
原创 算法基础一高精度
一般四类:大整数加法,减法,大整数乘小整数,大整数除以小整数把大整数的每一位存到数组里面,因为int 和long long都存不下,存的时候大整数从后往前存,例如:大整数123456789,那么存的时候把9存到数组下标为0的地方,8存到数组下标为1的地方,其他依次,因为涉及到进位...
2022-05-01 16:15:15
419
原创 算法基础一排序与二分
算法学的实在是太la了,所以就要从头开始再来一遍,加油!快排和归并都用到了分治的思想快速排序: 最开始,随机选取一个值x作为分界点,一般是选择数组下标为中间值的那个数(即x=q[l+r>>1]),用到双指针i和j,i指向最左端元素的左边一个位置(即i=l-1),j指向最右端元素的右边一个位置(即j=r+1),接下来开始指针移动,满足q[i]<x,i++;满足q[j]>x,j--,就这样一直移动,直到i和j相遇,有些解释看下边的快排代码模板。代码模板如下:voi.
2022-04-29 18:31:02
672
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人