自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 问答 (4)
  • 收藏
  • 关注

原创 输出n2顺转方阵

【代码】输出n2顺转方阵。

2022-09-23 19:57:56 191 1

原创 将数转化为二进制,并8位输出一个空格

【代码】将数转化为二进制,并8位输出一个空格。

2022-09-23 19:22:27 206

原创 leetcode 8 将字符串转换为整数

改写之后的代码 “面向状态”

2022-09-18 12:14:59 250

转载 leetcode统计字符串中的单词数

原问题转化为求字符串中单词的第一个下标的个数class Solution {public:int countSegments(string s) {int segmentCount = 0; for (int i = 0; i < s.size(); i++) { if ((i == 0 || s[i - 1] == ' ') && s[i] != ' ') { segmentCount++; } }

2021-10-07 11:01:51 222

转载 P2181对角线条数

首先由于不会有三条对角线交于一点,所以过某一个交点有且只能有2条对角线而这两条对角线实质上是确定了4个顶点(也可以看做是一个四边形的两条对角线交于一点,求四边形的数量)。因此我们只需要确定4个顶点就得到了这个唯一确定的交点。因此我们只需要求这样4个顶点的搭配有多少个了也就是从n个顶点中取4个出来。https://www.luogu.com.cn/problem/solution/P2181...

2021-10-05 08:14:19 108

转载 leetcode 482 密钥格式化

自己的代码class Solution {public: string licenseKeyFormatting(string s, int k) { string ans=""; int num=0; int len=s.length(); for(int i=0;i<len;i++) { if(s[i]!='-') { ans+=s[i];

2021-10-04 20:15:11 93

原创 leetcode 261周赛

题A:只要每扫描到一个X 就把它以及它之后的两个变为O题C:把数分成三类余数为0,1,2 即n0,n1,n2则产生的序列顺序是确定的1 1 2 1 2 1 2……或2 2 1 2 1 2 1……当n0为偶数,不改变Alice和Bob选择的轮次当出现1 1 2 1 2 1 2 2这样的时候即n2>=n1 Bob输2 2 1 2 1 2 1 1 即n1>=n2 Bob输当n0为奇数 则最后一个0肯定是Bob选的1 1 2 1 2 0 1 1 n1-n2>=3Bob输

2021-10-03 14:19:35 84

转载 leetcode 166 分数到小数 余数

numerator/denomerator为整数部分上步的余数部分乘以10/denomerator为第一位小数上步的余数部分乘以10/denomerator为第二位小数………………如何找到循环节呢?如果有一步的余数已经出现过了 就代表循环节已经出现...

2021-10-03 09:41:33 124

原创 leetcode 405 数字转换成16进制数

char changeTochar(int num) //把0-15的数转换成字符{ if(num>=0&&num<=9) { return num+'0'; } else { return num-10+'a'; }}char * toHex(int num){ char* ans=(char*)malloc(sizeof(char)*9); if(num==0) {

2021-10-02 11:12:50 91

原创 fgets和fscanf在读取srt文件时哪个比较快及fscanf的fp指针移动问题

while(fgets(str,1024,fp))while (fscanf(fp, "%[^\n]%*[\n]", str) != EOF)在数据量较小时为5000行数据时fgets为2个时钟单元单元fscanf为5个数据量为10万行时fgets为45个时钟单元fscanf为101个时钟单元数据量为100万行数据时fgets为408个时钟单元fscanf为955个时钟单元综上来说 fgets比较快,但是fgets缓冲区足够大的话,str后面还会更上个’\n’...

2021-10-01 09:43:41 336

原创 leetcode 1436

class Solution {public: unordered_map<string,string> mp; string destCity(vector<vector<string>>& paths) { for(int i=0;i<paths.size();i++) { mp[paths[i][0]]=paths[i][1]; } string

2021-10-01 09:00:05 87

转载 leetcode 517 超级洗衣机 求最大流量

本题要求的是任选m台洗衣机本题要求最小的移动次数,肯定每次的移动都是为了多的往少的移动 可以是一次从多的往少的移动,也可以经过一个或多个中转站往少的移动。这样差值就有这样两种情况(2,-3,1,-4,6,-2) 因为允许并行,所以移动次数是由最多的那堆衣服决定,每次都是差值为正的那些洗衣机并行操作。还有种情况(4,2,-6) 因为选择的m个洗衣机可以包含连续的洗衣机,那中间部分的洗衣机只起到了过渡作用,如果这些起过渡作用的洗衣机也是需要往外面移出的话 就不能和最大差值的那个洗衣机并行操作了。这时候若

2021-09-30 17:50:11 249

转载 leetcode 223 通过x,y方向上的投影判断矩形是否相交 和求矩形相交的面积

官方题解#define MAX(x,y) (x>y?x:y)#define MIN(x,y) (x<y?x:y)int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2){ int a=(ax2-ax1)*(ay2-ay1);int b=(bx2-bx1)*(by2-by1); int tx=MIN(ax2,bx2)-MAX(ax1,bx1); int

2021-09-30 10:26:40 191

原创 leetcode437 路径总和3 寻找总和为targetsum的路径

两层dfs 第一层dfs找根节点,第二层dfs从根节点开始找路径时间复杂度O(n2)/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */void dfs(struct TreeNode* proot,int sum,int*ans,int targetSum)

2021-09-28 18:52:41 96

原创 leetcode 639 解码方法 2

DP 从前面的推到后面的枚举前面的情况就可以了注意取余的操作 中间的值有可能超过int表示的范围 需要用long long 暂存,不然的话,需要用循环 每次加到结果上面再取余,确保int值能够存放 导致On的常数比较大#define MOD 1000000007int numDecodings(char * s){ int len=strlen(s); if(len==1) { if(s[0]=='0') return 0;

2021-09-27 19:25:59 76

转载 leetcode 371 不用+ - 实现求两整数的和

一开始想到了一个方法但是只能实现正整数的运算int getSum(int a, int b){ int t=1; int t1,t2; int c=0; int k; while(t<=a||t<=b) { //printf("t=%") t1=a&t; t2=b&t; printf("t1=%d,t2=%d\n",t1,t2); if(t1==0&&

2021-09-26 11:42:34 74

原创 leetcode 583 删除两个字符串中的字符,使得两个字符变成最长公共子序列

最长公共子序列变题#define MAXN 1010;#define MIN(x,y) (x<y?x:y)int minDistance(char * word1, char * word2){ int len1=strlen(word1); int len2=strlen(word2); int dp[len1+1][len2+1]; for(int i=0;i<=len1;i++) { dp[i][0]=i; }

2021-09-25 11:52:04 92

原创 leetcode430 扁平化多级双向链表

我的方法是用DFS 一开始想直接在head链表的基础上进行修改结果发现单纯的dfs不行,因为当遍历的有子节点的结点时可以改变这两个结点间的链接关系,但是当一个分支全部遍历完毕之后,还要回到上一级,就是上个有孩子结点的那个结点的后一个结点,所以就需要把这些需要结点都要保存下来,有2个结点就要保存2个,有100个结点就要保存100个但从传递参数的角度来看,是不现实的。理论上可以传递一个栈的指针,用栈来保存这些结点,但一个分支结束时,弹出栈顶指针就可以实际上采用的方法是dfs遍历每个结点然后加入到新的链表中。

2021-09-24 19:22:11 85

转载 leetcode 725 链表的分割

我的想法是每组的个数是当前的cnt/当前的k 再向上取整struct ListNode** splitListToParts(struct ListNode* head, int k, int* returnSize){ struct ListNode** ans=(struct ListNode**)malloc(sizeof(struct ListNode*)*k); struct ListNode* p=head; int cnt=0; whi

2021-09-22 18:59:51 70

原创 leetcode 3 无重复字符串的最长子串

暴力int lengthOfLongestSubstring(char * s){ int len=strlen(s); if(len==0) return 0; int dp[len]; dp[0]=1; int maxlen=1; int j; for(int i=1;i<len;i++) { for(j=i-1;j>=i-dp[i-1];j--) { if

2021-09-21 16:26:12 60

原创 leetcode 两数相加 链表 逆序

自己的代码/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2){ int c=0; int sum; struct ListNode* head=NUL

2021-09-21 15:46:06 98

原创 leetcode 673最长递增自序列的个数 二分查找 *

O(n2)比较慢#define MAX(x,y) (x>y?x:y)int findNumberOfLIS(int* nums, int numsSize){ int len[numsSize];//存储以nums[i]为结尾的最长子序列的长度 int cnt[numsSize];//存储以nums[i]为结尾的最长子序列的个数 int ans[numsSize+1];//存储长度为i的最长子序列的个数 memset(len,0,sizeof(len));

2021-09-21 14:34:51 57

原创 初次接触Web Apache Tomcat 与两者的整合及虚拟主机的设置中遇到的问题记录

配置Apache配置Apache的过程主要是通过修改httpd.conf文件来配置的,修改后需要先安装Apache服务可以通过控制台调到Apache的bin目录 通过httpd -t来检查语法错误配置TOMCAT运行startup.bat后表明tomcat启动了,不能关闭这个界面 否则localhost:8080无法访问Apache与Tomcat的整合使用http_proxy集成后,即在Apache的httpd.conf文件的末尾添加了ProxyPass和ProxyPassReverse两条代

2021-09-19 16:30:15 86

原创 leetcode 36 有效的数独

暴力class Solution {public: bool isValidSudoku(vector<vector<char>>& board) { set<char> st; //测试每一行上是否有相同的数字 for(int i=0;i<9;i++) { st.clear(); for(int j=0;j<9;j++)

2021-09-17 18:26:31 51

原创 leetcode 162 寻找峰值 二分

递归写法int binary_search(int* nums,int left,int right){ if(left==right) return left; int mid=(left+right)>>1; if(nums[mid]<nums[mid+1]) return binary_search(nums,mid+1,right); else return binary_search(nums,left

2021-09-15 20:04:24 64

原创 leetcode 524子序列匹配问题 字典序大小比较

char * findLongestWord(char * s, char ** dictionary, int dictionarySize){ int p=-1; char *ans=""; int len_of_s=strlen(s); int dp[len_of_s+1][26]; for(int i=0;i<26;i++) dp[len_of_s][i]=len_of_s; for(int i=len_of_s-

2021-09-14 21:38:43 129

转载 leetcode 678 有效的括号字符串

栈class Solution {public: bool checkValidString(string s) { stack<int> st1; stack<int> st2; int len=s.length(); for(int i=0;i<len;i++) { if(s[i]=='*') { st2.push(i)

2021-09-12 16:11:51 60

原创 leetcode 600小于等于n中不含连续1的非负整数

官方题解通过字典树将n的情况变成一棵树中的路径情况官方题解中的高度实际上是叶节点标为1,从叶节点往上数数到目标结点的数,并不是从目标结点到叶节点的边数官方题解中的完全二叉树也存疑实际上整个操作就是不停地从最高位取数,如果连续取到了两个1就终止不然的话 就加上和1相同高度的那个0的结果,因为在1的那个位置上填0的数比n小,最后到叶节点实际上就是加上全0的这种情况int findIntegers(int n){ int dp[30]; dp[0]=1;dp[1]=2; for

2021-09-11 17:25:51 91

转载 VS2019配置ODBC连接sql server数据库

C语言连接SQL Server数据库并且完成一次简易操纵#include <windows.h>#include <sql.h>#include <sqlext.h>#include <sqltypes.h>#include <odbcss.h>#include <stdio.h>SQLHENV henv;//环境句柄SQLHDBC hdbc;//连接句柄SQLHSTMT hstmt;//语句句柄SQLRETURN

2021-09-11 14:46:45 2391 1

转载 Ms sql server修改sa密码

Microsoft SQL Server 2017 修改用户登录密码

2021-09-11 13:47:35 174

转载 HDU 1237 求一个连通图中的哈密顿回路数(同一个状态下的哈密顿回路数)

哈密顿回路的具体形状不同,但是同一个状态下,不同的哈密顿回路的个数是相同的n个结点,各个结点间都是想通的,所以有(n-1)*n/2条边。每走一次都需要(也只需)n条边才能经过n个顶点,所以答案是(n-1)/2,即((n-1)*n/2)/n=(n-1)/2。#include <iostream>using namespace std;int main(){ int n; while(cin >> n && n) cout

2021-09-09 15:38:13 336

原创 leetcode 68 模拟

不能说写的很烂,只能说写的非常烂/** * Note: The returned array must be malloced, assume caller calls free(). */char ** fullJustify(char ** words, int wordsSize, int maxWidth, int* returnSize){ char** ans=(char**)malloc(wordsSize*sizeof(char*)); int index=0;

2021-09-09 14:01:11 82

原创 HDU 2899 二分

#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>#include<vector>#define ENTER printf("\n");#define MOD 1000000007//快速打印一个数组#define ll long long#define NUM 1000#define d

2021-09-08 19:55:46 38

原创 HDU 3283 求比一个排列大的第一个排列

以279134399742为例第一步找到末尾的上升序列99742 它的前一个数3就是要变换的数第二部在上升序列99742中找到第一个比3大的数 也就是4 然后交换3和4交换3和4后变为279134499732将99732逆序得279134423799#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>#

2021-09-08 19:45:10 48

原创 HDU 2266 在一串数字中添加“+““-“使得等式成立 dfs

#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>#include<vector>#define ENTER printf("\n");#define MOD 1000000007//快速打印一个数组#define ll long long#define NUM 1000using nam

2021-09-08 19:06:46 80

转载 leetcode IPO

贪心+堆(每次选择最大的,所以用堆来维护)typedef pair<int,int> pii;class Solution {public: int findMaximizedCapital(int k, int w, vector<int>& profits, vector<int>& capital) { int n = profits.size(); int curr = 0; prio

2021-09-08 18:50:35 52

原创 HDU 4472 Count 求n个结点有多少个平衡的树 dp

这里平衡的定义是 同一高度的结点具有相同个数的子节点,还要注意有些图是同构的以n=6进行思考当最高结点的子结点只有一个时,那要使5个结点构成平衡的,种数就是f(5)当最高结点的子节点有两个时,要使4个结点构成的两颗子树,及整棵大的树是平衡的,必然这两颗子树要是一样的,这两颗子树的结点数也要相同所以就是f(6-1/2),即f(2.5)而2.5又不是整数,所以此种情况下不能构成平衡的同理最高结点的子节点有3个时,每颗子树的结点个数就是(6-1)/3=5/3 也不行同理一直分析到子节点的个数有5个就可以

2021-09-07 20:12:53 68

原创 HDU 2566 统计硬币 暴力枚举

注意a+b<=n这个条件#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<math.h>#include<vector>#define ENTER printf("\n");//快速打印一个数组#define ll long long#define NUM 1000#define MOD 1000

2021-09-07 19:17:55 74

转载 HDU 4642 博弈

题意:Alice和Bob中玩游戏,给你一个n*m的矩阵,由0和1组成,每次选择一个1,将当前位置(x,y)与(n,m)组成的矩阵都纤维相反的0->1,1->0Alice先开始,谁先组成0矩阵就胜利无论谁翻转,都会改变最后一个位置的值,所以只考虑最后一个点,有0和1两种情况,其中必然有一个必胜点,当是1时,Alice将其变为0,所以为1为必胜点只要判断最后一个位置就可以了。。。#include"stdio.h"#include"string.h" int main(){ int

2021-09-07 18:31:00 49

原创 leetcode 1221 分割平衡字符串

int balancedStringSplit(char * s){ int num_of_l=0; int num_of_r=0; int num_of_ans=0; int len=strlen(s); for(int i=0;i<len;i++) { if(s[i]=='L') num_of_l++; if(s[i]=='R') num_of_r++; if(num_o

2021-09-07 16:57:51 94

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除