Contact me:

随笔分类 -  C/C艹

摘要:#题目leetcode326 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x ##神奇数字243 我的方法:求$log_3(n)$,判断是否是整数.然后遇到243怎么也通 阅读全文
posted @ 2022-01-04 15:10 impwa 阅读(426) 评论(1) 推荐(0)
摘要:今天打力扣周赛,c++写了一个判断vector大小的代码,当vector为空时,总是通不过,结果打印出来一看出现了'18446744073709551615'这个奇怪的数。 vector<int> n; cout<<n.size()<<" "<<n.size()-1;//0 184467440737 阅读全文
posted @ 2022-01-02 15:37 impwa 阅读(188) 评论(0) 推荐(0)
摘要:抽象基类的派生子类构造函数按照初始化列表的写法怎么也写不对,查资料后记录 ##要点如下 公有类型派生类不能访问基类私有成员 --但我这里基类没有private成员 为什么要调用父类的构造函数? 构造函数用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方 阅读全文
posted @ 2021-12-12 09:57 impwa 阅读(2340) 评论(0) 推荐(0)
摘要:先怎么想不出递归解法,想到只能用BFS队列。。。 ##BFS /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode 阅读全文
posted @ 2021-12-06 19:39 impwa 阅读(30) 评论(0) 推荐(0)
摘要:##非递归 在做层序遍历之前,一直认为递归最牛逼,非递归是 💩 。然后用到BFS时递归没法用了,遂硬着头皮回去看,发现递归原理也是调用栈来储存。。。 其实多理解一下发现思路和递归差不多,但并不是一来就是按照顺序压栈,一般先压单边,然后弹出的时候再处理。 思路 不了解三种遍历方式可以先看看介绍 1. 阅读全文
posted @ 2021-12-05 22:56 impwa 阅读(43) 评论(0) 推荐(0)
摘要:##题目 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 进阶: 你可以运用递归和 阅读全文
posted @ 2021-12-02 17:08 impwa 阅读(24) 评论(0) 推荐(0)
摘要:种一棵二叉树最好的时间是十年前,其次是现在:smile:。 先讲一下前序、中序、后序遍历, 其实就是(访问当前节点的值的代码cout<<(root->val)<<endl;)与递归代码(递归左右节点)位置关系来区分 ##二叉树遍历类型 ###前序遍历 {//前序遍历 if (root==nullpt 阅读全文
posted @ 2021-12-02 11:55 impwa 阅读(238) 评论(0) 推荐(0)
摘要:没做出来,复盘一下 ##题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 输入:root = [2,1, 阅读全文
posted @ 2021-11-30 23:19 impwa 阅读(210) 评论(0) 推荐(0)
摘要:没想到BFS和DFS忘得这么快。。 BFS一个循环两个栈,dfs两个循环一个队列 递归,试着从后往前想 ##题目 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null 阅读全文
posted @ 2021-11-29 09:39 impwa 阅读(33) 评论(0) 推荐(0)
摘要:让程序读入一组文本行,并打印最长的一行 ##getline函数理解 #include <stdio.h> int c, i; const int n = 99; char l[n]; main() { //处理一行 for (i = 0; (c = getchar()) != EOF && c != 阅读全文
posted @ 2020-11-28 15:53 impwa 阅读(128) 评论(0) 推荐(0)
摘要:• 数组变量本⾝身表达地址,所以 • int a[10]; int*p=a; // ⽆无需⽤用&取地址 • 但是数组的单元表达的是变量,需要⽤用&取地址 • a == &a[0] • []运算符可以对数组做,也可以对指针做: • p[0] ⇐=> a[0] • *运算符可以对指针做,也可以对数组做: 阅读全文
posted @ 2020-11-28 09:16 impwa 阅读(152) 评论(0) 推荐(0)
摘要:1 #include <stdio.h> 2 int k = 222, t = 9; 3 void swap(int *a, int *b); 4 5 main() { 6 swap(&k, &t); 7 printf("\nkkkkkk=%d\nttttttttt=%d", k, t); 8 } 阅读全文
posted @ 2020-11-28 08:57 impwa 阅读(152) 评论(0) 推荐(0)
摘要:#include <stdio.h> int k = 222, t = 9; main() { int (*p) = &k; printf("%d\n%d\n%d", p, *p, &t); } 输出 我个人粗浅的理解 p是一个值,代表所指的地址(也就是&k的值) *p是访问p值的地址,并返回访问地 阅读全文
posted @ 2020-11-25 21:08 impwa 阅读(124) 评论(0) 推荐(0)
摘要:while()后面两个if一直没法平行,找了半天原因结果是没用大括号 花括号中多条语句,逻辑上是一个整体,用来组织层次结构! ##tcpl 1-14(半成品) #include <stdio.h> main() { int cts[26], c, max, i; for (i = 0; i < 26 阅读全文
posted @ 2020-11-23 12:09 impwa 阅读(393) 评论(0) 推荐(0)
摘要:[Error] invalid conversion from 'char' to 'const char*' [-fpermissive] #include <stdio.h> main() { int c, lg[12], i, l; for (c = 0; c < 12; ++c) lg[c] 阅读全文
posted @ 2020-11-23 09:52 impwa 阅读(224) 评论(0) 推荐(0)
摘要:#打印输入单词长度的直方图 #include <stdio.h> main() { int c, lg[12], i; for (c = 0; c < 12; ++c) lg[c] = 0; while ((i = getchar()) != EOF) if (i >= 'a' && i <= 'z 阅读全文
posted @ 2020-11-23 09:37 impwa 阅读(109) 评论(0) 推荐(0)
摘要:![](https://img2020.cnblogs.com/blog/2015058/202011/2015058-20201122112012071-346341932.png) 阅读全文
posted @ 2020-11-22 11:20 impwa 阅读(76) 评论(0) 推荐(0)
摘要:#C一维数组 ##1错误示例 #include <stdio.h> main() { int dgt[10], i; for (i = 0; i < 10; ++i) printf( "% d", "dgt[i]"); } 第一次写的时候没有初始化数组元素,打印结果全是4210688 ##2 #in 阅读全文
posted @ 2020-11-22 10:59 impwa 阅读(288) 评论(0) 推荐(0)
摘要:#习题1-10 ##将输入中的符号替换为可见并输出 #include <stdio.h> /* Run this program on itself (this file) and the following string " " will be only one blank long. */ ma 阅读全文
posted @ 2020-11-21 14:23 impwa 阅读(79) 评论(0) 推荐(0)