首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
不经历怎么能成长
获赞
207
粉丝
3
关注
7
看过 TA
39
男
南昌大学
2023
Java
IP属地:广东
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑不经历怎么能成长吗?
发布(156)
评论
刷题
不经历怎么能成长
关注TA,不错过内容更新
关注
2021-03-12 21:06
已编辑
南昌大学 Java
整数中1出现的次数(讨论最低位为1,0,>1)
当n = 216; 个位上为1,216/10 + 1 * 1即01,11,21,..201; 211; 十位上为1:设x代表一个(0-9)的数字。先不考虑210-216上十位的1。 在1x-11x个位上可以取0-9即(21/10)*10。 最后考虑21X的情况,因为X不一定能取到0-9。即210-216 共7个 216%10+1。 其他位置类似。 当n = 206; 个位上为1,206/10 + 1 。 十位上为1:设x代表一个(0-9)的数字。先不考虑200-206上十位的1。 在1x-11x个位上可以取0-9即(20/10)*10。 最后考虑20X的情况,因为20%10 =...
0
点赞
评论
收藏
分享
2021-03-12 21:05
已编辑
南昌大学 Java
把数组排成最小的数(数字转化为字符串排序)
/* to_string:int double 等类型转化为string 根据两个数顺序的大小进行排序 */ class Solution { public: string PrintMinNumber(vector<int> num) { string ans; if(!num.size())return ans; sort(num.begin(), num.end(), cmp); for(auto x:num){ ans+=to_string(x); } ...
0
点赞
评论
收藏
分享
2021-03-19 11:56
已编辑
南昌大学 Java
两数之和(哈希表 /unordered_map)
/* unordered_map<int, int> mp mp.find(val)!=mp.end() mp.count(val)!=0 */ class Solution { public: /** * * @param numbers int整型vector * @param target int整型 * @return int整型vector */ vector<int> twoSum(vector<int>& numbers, int target) { ...
0
点赞
评论
收藏
分享
2021-03-07 21:56
南昌大学 Java
连续子数组最大和(*max_element())
/* 简单dp dp[i]:以array[i]结尾的数组和; 两种状态:要么选择前面dp[i-1],要么不选,取最大值, dp[i] = max(dp[i-1]+ array[i], array[i]) *max_element():求数组中最大值 */ class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int ret = array[0]; int tmp = 0; for(auto k : array){ ...
0
点赞
评论
收藏
分享
2021-03-06 17:34
已编辑
南昌大学 Java
数组中超过一半的数字(unordered_map/贪心)
/* total 标记是否需要替换数字 最大贪心,前面为一半不一样数字,后面为超过一半的相同数字,最终记录的数字为最多的那个 因此如果超过一半数字存在,无论如何排列最终都会记录下排列最多的数字。 但是最后还要遍历数组看是否超过一半。 当比较下一个数字时,total 为 0时候替换数字为当前数字。 时间O(n) 空间:O(1) */ class Solution { public: int MoreThanHalfNum_Solution(vector<int> vt) { if(!vt.size()) return 0; int f, tot...
0
点赞
评论
收藏
分享
2021-03-06 17:04
南昌大学 Java
字符串的排列(set&递归)
/* 递归:f(s,pos),从pos开始到字符串末尾进行种类获取 每层递归确定一个字符,注意递归结束要返回原位置,防止重复,错误 用set集合存储自动把重复的删除且排序。 return {} vector<string>(ret.begin(), ret.end()) insert(); */ class Solution { public: void perm(int pos, string s, set<string> &ret){ if(pos + 1 == s.length()){//遍历到最后一个结束 ...
0
点赞
评论
收藏
分享
2021-03-06 15:14
南昌大学 Java
二叉搜索树与双向链表(中序遍历)
/* convert : 链表化子树,并返回头指针 last : 记录链表化的尾节点 按照中序遍历顺序赋值; 当前节点指向其前驱节点 root->left = last; 前驱节点指向当前节点 last->right = root; */ class Solution { public: TreeNode* last = NULL; TreeNode* Convert(TreeNode* root) { if(!root) return NULL; TreeNode *p = Convert(root->left);//链表...
0
点赞
评论
收藏
分享
2021-03-05 21:04
南昌大学 Java
复杂链表复制(在原链表上复制后拆开)
/* p->next = r; // 带 -> 理解为指向 p结点 指向 r 结点 ,p 指针本身不变化 r = r->next; // 不带 -> 理解为赋值; r 代表 r的next r 指针变化后移 }; 重新声明空间构造,random 指向的结点 不容易找到。 在原有链表上先复制出新的节点,根据原有链表关系找到新复制的节点 */ class Solution { public: RandomListNode* Clone(RandomListNode* pHead) { if(!pHead) return NULL; R...
0
点赞
评论
收藏
分享
2021-03-12 21:03
已编辑
南昌大学 Java
二叉树和为某一值的路径(递归全局变量回溯)
/* 两个递归口,之间是递归先后关系 递归口的前后语句(操作)代表边走边操作(从前往后),后面的语句代表每个递归口退出都要进行操作(从后往前操作), */ class Solution { public: vector<vector<int> > ans; vector<int> path; void dfs(TreeNode* cur, int value){ if(!cur || value < 0) return; value -= cur->val; path.pus...
0
点赞
评论
收藏
分享
2021-03-05 15:13
已编辑
南昌大学 Java
二叉树搜索树的后续遍历(递归+非递归)
/* 每次递归划分出左右子树进行判断 根据最后一个元素根节点,划分左子树,剩下的为右子树,判断右子树是否符合条件。 然后递归判断左右子树. 边界条件:eg当left=2,sequence[left]=5,right=3,sequence[right]=5; i=3,递归进去左子树f(sequence,3,2); */ class Solution { public: bool f(vector<int> &sequence, int left, int right){ if(left>=right)return true;//left>=...
0
点赞
评论
收藏
分享
2021-03-04 21:44
南昌大学 Java
二叉树层次遍历(queue)
/* 层次遍历 */ class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> vt; if(!root)return vt;//push()进去的不能为空 queue<TreeNode*> q; q.push(root); while(!q.empty()){ TreeNode* tmp=q.front();q.pop(); ...
0
点赞
评论
收藏
分享
2021-03-05 11:32
已编辑
南昌大学 Java
栈的压入和弹出
/* 模拟出栈入栈 用一个栈s保存入栈序列, 当找到出栈的元素后出栈,符合出栈序列就出栈,不符合继续入栈。 直到入栈序列全部遍历完,s中是否还有元素 */ class Solution { public: bool IsPopOrder(vector<int> pushV,vector<int> popV) { if(pushV.size()!=popV.size())return false; int i=0,j=0; stack<int> s;//s保存入栈序列 while(i&l...
0
点赞
评论
收藏
分享
2021-03-19 11:58
已编辑
南昌大学 Java
顺时针打印矩阵(设置边界多层循环)
/* 一个外循环下四个内循环。 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 top 上边边界 bottom下边边界 left:左边边界 right:右边边界 边界条件:当底部和顶部相等时,当左边和右边相等时只遍历一遍 当左右上下,任何两边指针相等时结束 */ class Solution { public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> ans; int...
0
点赞
评论
收藏
分享
2021-03-19 11:59
已编辑
南昌大学 Java
二叉树的镜像(递归)
/* f():将树镜像翻转返回指针 递归出口:当pRoot==NULL return NULL;return pRoot; 左右子树翻转f(pRoot->left);f(pRoot->right) tmp=pRoot->right;保存一个子树的指针交换时防止被覆盖 pRoot->right = f(pRoot->left); pRoot->left = f(pRoot->right); */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 ...
0
点赞
评论
收藏
分享
2021-03-04 15:44
南昌大学 Java
树的子结构(树每个结点递归)
/* f:判断A,B是否相等 递归出口:当A==NUll 返回 false; B==NUll返回true 当A->val==B->val 判断左右子树f(A->left,B->left),f(A->right,A->right); 否则返回false HasSubtree 还要循环判断A中结点,与B中每一个结点比较,即f(A中任意一个结点,B) 返回当前结点,返回左右结点判断情况。 */ class Solution { public: bool dfs(TreeNode *r1,TreeNode *r2){ if(!r2)retu...
0
点赞
评论
收藏
分享
1
6
7
8
9
10
11
关注他的用户也关注了:
牛客网
牛客企业服务