自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 问答 (2)
  • 收藏
  • 关注

原创 一个LM324的电流源方案

这两天打算做个恒流源,目标20mA,查了许多东西,用LM324的方案,没找到比较简单的,用INA121手册里的一个方案转换了下方法,仿真通过,不确定实物效果。输出电流大小仿真值极限40.6mA,输出公式如下Ui为第3脚输入电压...

2021-08-19 19:46:27 2382

原创 第21天

比较,如果从这一分支出发总和更大,修改tmp,若分支和小于零,放弃int tmp = INT_MIN;int maxPathSum(TreeNode* root) { getdfs(root); return tmp;}int getdfs(TreeNode* node){ if(node == NULL) return 0; int left = max(getdfs(node->left),0); int right = max(getdfs(node-&g

2021-02-01 12:41:29 66

原创 第20天

由于昨天基本的代码就已经写好了,这两道题的区别在于节点两侧的数值是否与节点大小有关,根据昨天的完成的寻址函数,基于此将后面的返回,在遇到空、或者路径不同的结果进行返回即可寻址方式为,如果发现返回true进行记录,否则返回false终止。代码如下bool findWay(TreeNode* root, TreeNode* find, vector<bool>& way) { if (root == nullptr) return false; if (root-&gt

2021-01-30 23:09:05 60

原创 第19天

由于二叉搜索树呈现,左侧部分恒小于节点,右侧部分恒大于节点,所以我们可以通过直接比较节点和目标值来确定位置之前卡在这个位置,用vector< bool >记录各个部分走法,记录为地图,但无法辨别我是应该向左取还是向右,尤其是刚好卡在中间的时候。代码如下TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(p->val < root->val &&

2021-01-30 00:15:12 83 1

原创 第18天

我是把整个读取出来,存入vector,再用sort整理,第k个即vector的k-1项 void toVector(TreeNode* root, vector<int>& place){ if(root->left != nullptr) { toVector(root->left, place); } if(root->right != nullptr) { t

2021-01-29 18:20:47 54

原创 2021-01-28

如果为空,返回0,如果左右同为空,返回1,其余向后迭代…直到发现以上两种的情况int maxDepth(TreeNode* root) { if(root == nullptr) return 0; if(root->left == root->right) return 1; int lenL = maxDepth(root->left),lenR = maxDepth(root->right); return ((lenL > lenR)

2021-01-28 21:07:55 39

原创 第十六天

正则排序按照查到的思路,代码如下迭代的方式完成bool isMatch(string s, string p) { if(p.empty()) return s.empty(); bool first_match = !s.empty() && (p[0] == s[0] || p[0] == '.'); if(p.length() >= 2 && p[1] == '*') return isMatch(s,

2021-01-27 01:39:51 156

原创 第14天

遍历,如果发现与第一位相同的元素,向后检查是否一致,不一致弹出,如果遍历完成仍未发现,返回-1.int strStr(string haystack, string needle) { int s2 = needle.size(),s1 = haystack.size() - s2; if(s2 == 0) return 0; if(s1 < 0) return -1; bool test; for(int r = 0;r <= s1;++r){

2021-01-25 15:45:51 96

原创 第十二天

最长公共前缀string longestCommonPrefix(vector<string>& strs) { string out; if(strs.empty()) return out; sort(strs.begin(),strs.end()); out = strs[0]; bool isRight = true; for(int r = 0;(r < strs[0].size()) &&

2021-01-22 23:27:36 68 1

原创 字符串相乘

我们采用倒序相乘,结果先倒序存入空间,最后调整回正序string multiply(string num1, string num2) { if (num1.empty() || num2.empty()) return "0"; if (num1.front() == '0' || num2.front() == '0') return "0";#define toInt(Str) (Str - '0') //两个宏,分别是将char变回int和将int变回char,

2021-01-22 18:14:29 70

原创 字符串加法....

…乘法在进行尝试中,大概的思路有了加法的函数string addStrings(string num1, string num2) { if (num1.empty()) return num2; if (num2.empty()) return num1; if (num1.front() == '0') return num2; if (num2.front() == '0') return num1; int sz1

2021-01-22 15:53:12 217

原创 2021-01-21

把第一次出现的数字放入check[0],第二次放入check[1],第三次出现时清空int singleNumber(vector<int>& nums) { int check[2] = { 0,0 }; for(auto r : nums){ check[0] = (check[0] ^ r) & (~check[1]); check[1] = (check[1] ^ r) & (~check[0]); }

2021-01-21 22:05:38 59

原创 第十天?大概

我这样算偷鸡么…int singleNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); for(int r = 0;r + 1 < nums.size();++r){ if(nums[r] == nums[r + 1]) ++r; else return nums[r]; } return nums[nums.size() - 1];}...

2021-01-20 18:42:01 497

原创 链表排序

初始想法新建一个空间存放,不断将信息抄入,如果比右端大,在右端新建,比左端小,新建一个并放入链中/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * Li

2021-01-19 20:39:11 55

原创 假期打卡第八天

同样利用快慢指针完成寻找…两个指针分别运行x、y,我们可以知道y=2x,如果两个指针相遇,它们之间的路程差是x,也就是慢指针走过的距离。同时这个路程差表示,x刚好是这个环内拥有的元素数量的整数倍,即快指针每运行x路程就一定会回到这个节点,如果我们让慢指针在第一次相遇时返回起点,重新运行到与快指针相遇,他们将在入环的节点处。ListNode *detectCycle(ListNode *head) { if(head == NULL) return NULL; if(head->n

2021-01-17 23:11:59 50

原创 假期打卡第七天

利用两个指针向后走,只要相遇就是一个环,遇不上就不是一个环bool hasCycle(ListNode *head) { if(head == NULL) return false; if(head->next == NULL) return false; if(head == head->next) return true; ListNode *slow = head; ListNode *fast = head; while(fast-&gt

2021-01-16 14:47:58 69

原创 假期打卡的第六天

让两个链表同时进入,分别检测,谁小谁先进入… ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListNode* tmp = new ListNode(0); ListNode* out = tmp; ListNode* tmp1 = l1, * tmp2 = l2; //避免空指针 if(l1 == NULL) return l2; if(l2

2021-01-15 02:54:09 152

原创 思考人生中...

直接抄的…自己写的有点问题…放在下面class Solution {public: string longestPalindrome(string s) { int i,j,p=0,l=0,n=s.size(); for(i=0;i<n;i++) { for(j=1;j<=min(i,n-i);j++) if(s[i-j]!=s[i+j])

2021-01-13 22:39:25 56

原创 第四天,快乐

两个想法,一个是构建一个stack另一个是利用标准库里的容器完成自己构建有点小问题…等下解决下利用stack容器`class MinStack {private: stack<int> data; stack<int> min;public: /** initialize your data structure here. */ MinStack() : data(stack<int>()), min(stack<

2021-01-12 12:00:12 75

原创 搞事情疯狂翻车的第三天

试图解决问题失败,复制进去并融合了点其他的东西进来vector<vector<int> > threeSum(vector<int> &num) { vector<vector<int> > vt; if(num.size() < 3) return vt; sort(num.begin(), num.end()); if(num[0] > 0)

2021-01-11 22:07:36 45

原创 假期打卡第二天

今日打卡…回文数bool isPalindrome(int x) { if (x < 0) { return false; } long sum = 0; int sx = x; while (x != 0) { sum = sum * 10 + x % 10; x /= 10; } if (sum != sx) { return false; } return t

2021-01-10 16:30:14 79

空空如也

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

TA关注的人

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