自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 【Android】constraintlayout

问题描述:角度约束报错<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://sc...

2021-04-18 21:59:25 180

原创 【Android Studio】SDK components Setup无法勾选SDK(installed)问题

问题背景:我以为安装AS只需要next->next->finish 5分钟足够了,实际上安装从上午九点到晚上九点,最后发现是学校网拦截了,必须用手机热点,大约消耗了2G+流量(SDK+AVD+platform)。问题描述:0 从官网和中文社区都没办法下载exe包 这时候我就该发现问题在于网,但是我没有因为我曲线救国让朋友帮我下载exe包。具体下载参考点这里。1 SDK component setup页无法勾选SDK,显示installed。1.1 安装到别的盘(不...

2021-04-17 21:34:05 21670 27

原创 【OriginLab 】OriginPro 2019b汉化失败

OriginLab下载链接百度网盘百度网盘下载太慢了!为了不挖坑我推荐选择中文版的originlab汉化方法修改注册符号表 ,OriginPro 2019b中英文切换软件内顶部工具栏help-change Language ;我用这两种方法都不得行,软件内changeLanguage是灰色的,修改注册符号表会跳出功能快捷键撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:C

2021-01-22 16:58:03 5368 2

原创 【osg】viewer.run()与viewer.frame()在使用上的区别

先写结论:加上场景漫游器 viewer.setCameraManipulator(new osgGA::TrackballManipulator());1 背景实验需要测帧率并输出while (!viewer.done()) { if (counts == 0) { start_frame_time = timer->tick(); } counts++; viewer.frame(); if (counts == 3) { count.

2020-12-29 08:56:23 1307

原创 对角线打印二维矩阵

题目描述:按对角线方向打印矩阵输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 输出:1 2 5 3 6 9 4 7 10 13 8 11 14 12 15 16 思路:输出稍微旋转一下可以发现每一行元素的横纵坐标之和相等[0][0][1][0],[0][1][2][0],[1][1],[0][2]……[2][3],[3][2][3][3]共row+col-1=7行,由于方.

2020-11-20 01:01:41 257

原创 二叉树两个节点间的距离

题目描述:距离是指连接两个节点需要的最小的边的条数。思路:1找到节点的共同祖先2 找到节点到共同祖先的距离dist,可以想到这个距离disthelper = 节点到root距离 - root到共同祖先的距离3两个节点间距离 =节点1到共同祖先的距离dist1 +节点2到共同祖先的距离dist2 =节点1到root距离 - root到共同祖先的距离 +节点2到root距离 - root到共同祖先的距离实现://...

2020-11-13 11:38:39 2182

原创 【leetcode】543.二叉树直径/节点间最大最远距离

题目描述:543思路:首先二叉树一般用递归,要考虑终止循环条件。二叉树直径 = max(节点左子树深度+节点右子树深度,左子树的直径, 右子树的直径 )节点深度 = 1 + max(左子树深度, 右子树深度)简单点可以只在求最大深度时候递归1 全局变量res保存结果2 对root求最大深度求节点最大深度的函数:1 求左子树最大深度left2 求右子树最大深度right3 计算当前节点的直径 temp = left+right,判断temp是否大于res,维护全局变

2020-11-13 11:33:00 247

原创 【bug】NodeVistor节点访问器为空

if (nv && nv.getVisitorType() == osg::NodeVisitor::CULL_VISITOR) //UPDATE_VISITOR) = 0, //UPDATE_VISITOR, //EVENT_VISITOR, //COLLECT_OCCLUDER_VISITOR, //CULL_VISITOR, //INTERSECTION_VISITOR { osgUtil::CullVisit...

2020-11-08 02:43:31 202

原创 银行面试【交通银行】【工商银行】

交通银行 10/28/15:00 pm 共计十分钟1 野指针从内存泄漏开始讲,讲到指针未被正确释放,期间想到了侯捷老师讲过的string,但是似乎没说清楚。还想到深拷贝浅拷贝,但是面试官没有问。2 const和static区别const只读不能被改变。static静态,全局共享?3 mysql inner join面试官提到了交集我竟然还能回答错,无语4 ==与=区别只说出=是比较值,==当时不知道,现在知道是比较对象地址是否一致,也就是比较是不是同一个对象5 重写与重载

2020-11-05 00:09:18 931 1

原创 财经业务部门-客户端-四面面经 11-16

一面 10/25 16:041 指针与引用区别,指针、引用可以指向别的对象吗?2 设计模型,单例模型应用场景(提示:配置初始化)还是要看看设计模型这本书,侯捷老师明天见。3 进程间通信方式,实现共享内存的方法,具体函数shmget()和几个参数ID、大小、flag4 进程的调度算法先来先服务、短作业优先、时间片、优先级5 C++的锁,特点、优缺点互斥锁 mutex 睡眠等待条件变量 pthread读写锁 临界区、共享独占自旋锁6 http与https区别

2020-10-26 00:55:06 250

原创 笔试面试中【字符串】【输入输出处理】

1 926华为笔试项目经理组织发传单,经理委派给员工,员工分为外包。输入:performance块表示每名外包发送的传单数量,每行一个外包人员,输入格式:外包人员,传单数organization块表示项目经理、员工、外包的从属关系,输入格式:经理,组员,外包输出:项目经理<传单数>-组员<传单数>--外包<传单数> string temp; cin >> temp; while (1) { cin >.

2020-09-28 00:34:46 329

原创 【leetcode】 120. 三角形最小路径和​​​​​​​【动态规划】

120. 三角形最小路径和class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { int sz = triangle.size(); vector<int> dp(sz+1,0); for(int i = sz-1; i >=0; i--){ for(int j = 0; j &.

2020-09-20 23:14:30 59

原创 【leetcode】滑动窗口题目——76最小覆盖子串

参考:滑动窗口套路题目76. 最小覆盖子串1 从O(N)时间复杂度可知,暴力forfor是不可以的,O(N)一般想到hashmap。2 子串问题一般用 动态规划,滑动窗口(双指针)套用模板void slidingWindow(string s, string t) { unordered_map<char, int> need, window; for (auto c : t) need[c]++; int left = 0, right = 0; int

2020-09-10 15:47:03 152

原创 【leetcode】25. K 个一组翻转链表

25. K 个一组翻转链表思路:1 写一个翻转链表的子函数2 在主函数中,找到翻转的开头和翻转的结尾,然后递归的调用主函数来翻转下一组。需要注意的是为了不用dummy头结点,只能从后实现代码:class Solution {public: ListNode* reverseKGroup(ListNode* head, int k) { ListNode* cur = head; for(int i = 0; i < k; i++){

2020-09-07 11:05:46 76

原创 【leetcode】92. 反转链表 II

题目描述:92. 反转链表 II思路:翻转链表都需要两个指针 pre 和 cur,建立临时节点t = cur->next;cur->next = t->next;//移动指针t->next = pre ->next;//头插法pre ->next = t;//移动指针需要注意的是:m到n的循环操作,要注意的是m到n之间需要操作n-m-1次,所以for(int i= m; i < n; i++)简单的记住t cur t pre t实现.

2020-08-18 00:07:31 66

原创 【leetcode】110. 平衡二叉树

题目描述:110. 平衡二叉树思路:左右子树高度差小于等于1,则平衡,先求高度,再判断是否平衡。递归实现。易错点在于判断完root是否平衡还要判断root左右孩子节点。实现代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x

2020-08-17 23:52:56 87

原创 【编程】已知前序遍历中序遍历,得出叶子节点的个数

题目描述:已知先序遍历、中序遍历,求叶子节点数量 思路:DFS(深度遍历算法),叶子节点也就是只有根节点,无左右孩子节点我的想法是根据重建二叉树改编,本题不再需要重建树,需要改递归终止条件:当前序遍历序列长度为1的时候就是叶子节点,return 1#include<iostream>#include <vector>using namespace std;int N, node=0;//node是叶子节点个数,N为遍历序列个数int helper(vector

2020-08-17 17:34:47 615

原创 【leetcode】460. LFU缓存

题目描述:460分析:1 要统计每一个key出现的次数:一个哈希表m来记录当前数据{key, value}和其出现次数之间的映射2 把相同频率的key都放到一个list中,那么需要另一个哈希表freq来建立频率和一个里面所有key都是当前频率的list之间的映射。3 由于题目中要我们在O(1)的时间内完成操作,为了快速的定位freq中key的位置,我们再用一个哈希表iter来建立key和freq中key的位置之间的映射。4 还需要两个变量cap和minFreq,分别来保存cache的

2020-08-14 16:17:21 127

原创 【leetcode】146. LRU缓存机制

题目描述:146参考分析:LRU(Least Recently Used,最近最少使用)淘汰内存策略,最近使用的根据时间局部性永远放在队首、最不常使用放在队尾,当内存满了的时候淘汰掉不常使用的。本题要求设计:1 容量capacity;2 put(key, val) 方法存入键值对; 时间复杂度为 O(1)3 get(key) 方法获取 key 对应的 val,如果 key 不存在则返回 -1。时间复杂度为 O(1)看到O(1)必然想起hashmap的查找,为了删除和插..

2020-08-13 14:23:27 105

原创 【leetcode】424. 替换后的最长重复字符

题目描述:424. 替换后的最长重复字符分析:参考链接,参考链接首先理解滑动窗口是找到最大连续字符出现的次数本题意思是可以替换k个字符组成连续的字符串,则判断目前滑动窗口宽度是否大于 出现次数最多的字母个数+k ,大于的话滑动窗口滑动,小于则窗口扩张。我们维护一个数组int[26]来存储当前窗口中各个字母的出现次数,left表示窗口的左边界,right表示窗口右边界窗口扩张:left不变,right++窗口滑动:left++, right++historyCharMax保存滑动

2020-08-11 00:48:43 99

原创 【leetcode】93. 复原IP地址

题目描述:93. 复原IP地址思路:ip地址分为四段,每一段转换成int判断是否小于255因为存在第一个字段开头含有0,例如0、1、1、1,就是非法地址,所以要排除这种情况,grandyang这篇博客十分巧妙的利用重组后的ip长度是否比原来多3,来判断是否开头含0class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> res;

2020-08-10 00:10:10 78

原创 【leetcode】337. 打家劫舍 III

题目描述:337解题思路:打家劫舍本质是01背包问题,关注点在于:当前节点值的取舍、对于节点上一状态即左右子节点的状态值。当前状态值(当前值+不包含左右子节点的最大状态值,左右子节点最大状态值之和)。class Solution {public: int rob(TreeNode* root) { vector<int> res = dfs(root); return max(res[0], res[1]); } vect

2020-08-06 00:52:22 82

原创 【leetcode】每日一点点

要输出二维数组,所以要分层打印加一个变量size,控制每一层输出多少个。之字打印和她类似。排列组合的题目,动态规划去做。https://www.cnblogs.com/grandyang/p/4299608.html卡塔兰数数列类似于地下城勇士那一题,从最底层做动态规划class Solution {public: int minimumTotal(vector<vector<int>>& triangle) { vec..

2020-07-15 01:11:05 67

原创 【leetcode】今日总结

允许重复出现数字,所以unoredered_map,记录<数字,出现次数>,然后遍历nums2数组,如果在map里能找到nums2中元素,对应次数-1,并且放到res中。递归和非递归,非递归用stack递归方法。找到终止条件,如果节点为空则返回0。注意:全局变量res保存最终结果,更新的是左右根三者之和和原来的res中较大者。返回给上层计算是max(左,右)+root->val递归递归异或、右移、与运算动态规划。注意n=1,n=2,直..

2020-07-14 00:39:41 89

原创 【stl】第一章 六大组件 功能与应用

六大组件1 容器class template各种数据结构用来存放数据2 算法fuction template3 迭代器class template泛型指针。共五种类型。从实现角度,迭代器是一种将operator*、operator->、operator++、operator--等实现重载的class template。原生指针也是一种迭代器。4 仿函数重载了operator()的class或者class template。5 适配器修饰容器或仿函数或迭代器接

2020-07-13 10:37:01 108

原创 每日小知识点补充

1 红黑树为啥map、set底层实现用红黑树而不是平衡二叉树?因为多次插入删除操作可能导致树不平衡,增加平衡二叉树的旋转操作,而红黑树对平衡的要求略低。2 map set区别map以key-value成对存储、key不能重复;set只存元素,他的元素就是他的键值,具有唯一性。set.count()结果只能为0或者1,可用来查找元素3 “玩子数组或者子字符串且求极值的题,基本就是 DP 没差了”——grandyang4 数组 链表的优缺点从插入删除操作考虑,从查询考虑

2020-07-13 01:13:42 85

原创 【leetcode】174. 地下城游戏

题目:https://leetcode-cn.com/problems/dungeon-game/思路:1,要分清骑士到达某个房间的血量和这个房间的消耗(可能是+也可能是-)2,考虑到从公主房间离开时候血量>=1,倒退到进入公主房间时候骑士的血量必须要大于公主房间的消耗,即当前骑士血量与前一状态有关,所以考虑动态规划。3,考虑二维数组dp[i][j]表示第i行第j列房间骑士的总血量,包括 他在当前房间消耗的 和 进入下一个房间(右或者下)需要的;aaaa = min(dp[i+1]

2020-07-13 01:06:20 117

原创 leetcode347 前 K 个高频元素

题目描述:leetcode347前 K 个高频元素思路:将元素加入hashmap建立<数字,频率>的映射,然后借助priority_queue<频率,数字>实现最大堆,取最大堆的k个元素,时间复杂度O(k logN)class Solution {public: vector<int> topKFrequent(vector<int>& nums, int k) { unordered_map<int, int

2020-06-24 00:32:16 138

原创 【leetcode】23合并k个有序链表

题目描述:思路:代码实现;/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* mergeKLists(vector<ListNode*&..

2020-05-21 21:09:57 94

原创 【leetcode】22括号生成

题目描述:https://leetcode-cn.com/problems/generate-parentheses/思路:代码实现:class Solution {public: vector<string> generateParenthesis(int n) { vector<string> res; helper(n, n, "", res); return res; } void

2020-05-20 23:01:10 95

原创 【leetcode】155最小栈

题目描述https://leetcode-cn.com/problems/min-stack/思路getMin()—— 检索栈中的最小元素。需要辅助栈保存最小值。其他和栈功能相同。也可以设置变量记录最小值。代码实现:class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { .

2020-05-13 00:02:32 85

原创 【leetcode】19 删除链表的倒数第N个节点

题目描述:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/submissions/思路:快慢指针。快指针先走n步,如果快指针指向nullptr,则删除的是第一个节点,返回head->next,否则,快慢指针一起走,直到快指针走到尾巴,此时慢指针指向的下一个就是要删除的节点,把慢指针的next移到下一个的下一个。返回头结点。代码实现:class Solution {public:

2020-05-12 23:51:43 71

原创 【leetcode】17 电话号码组合

题目描述:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/submissions/思路:代码实现:class Solution {public: vector<string> letterCombinations(string digits) { if(digits.empty()) return {}; vector<stri...

2020-05-12 23:00:10 115

原创 【leetcode】236 二叉树的最近公共祖先

题目描述:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/思路:代码实现:class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(!root || p == root || q == root) .

2020-05-11 22:09:06 123

原创 【leetcode】【hot100】11盛最多水的容器

题目描述:https://leetcode-cn.com/problems/container-with-most-water/给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不...

2020-05-04 11:33:27 97

原创 【leetcode】【hot100】10.正则表达式

题目描述:https://leetcode-cn.com/problems/regular-expression-matching/解题思路:代码实现:class Solution {public: bool isMatch(string s, string p) { if (p.empty()) return s.empty();i...

2020-05-03 15:16:09 82

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

题目描述:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/解题思路:代码实现:class Solution {public: int lengthOfLongestSubstring(string s) { int len = 0,...

2020-05-03 14:19:20 72

原创 【编程题】逛街

链接:https://www.nowcoder.com/questionTerminal/35fac8d69f314e958a150c141894ef6a来源:牛客网小Q在周末的时候和他的小伙伴来到大城市逛街,一条步行街上有很多高楼,共有n座高楼排成一行。小Q从第一栋一直走到了最后一栋,小Q从来都没有见到这么多的楼,所以他想知道他在每栋楼的位置处能看到多少栋楼呢?(当前面的楼的高度大...

2020-04-25 01:29:58 501

原创 【编程题】字符串压缩算法和常用的substr与replace函数

题目描述:小Q想要给他的朋友发送一个神秘字符串,但是他发现字符串的过于长了,于是小Q发明了一种压缩算法对字符串中重复的部分进行了压缩,对于字符串中连续的m个相同字符串S将会压缩为[m|S](m为一个整数且1<=m<=100),例如字符串ABCABCABC将会被压缩为[3|ABC],现在小Q的同学收到了小Q发送过来的字符串,你能帮助他进行解压缩么?#include &lt...

2020-04-24 23:29:52 421

原创 LRU的实现:双向链表和hashmap

LRU缓存淘汰算法:LRU是最近最少使用策略的缩写,是根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。利用链表实现LRU原理:将Cache的所有位置都用双链表连接起来,当一个位置被命中之后,通过调整链表的指向,将该位置调整到链表头的位置,新加入的Cache直接加到链表头中。这样,在多次进行Cache操作后,最近被命中的,...

2020-04-23 15:53:53 264

空空如也

空空如也

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

TA关注的人

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