opencv cv::Mat与std::string互转
cv::Mat转std::string通过vector进行中转。但memcpy效率还是挺高的.
1234567891011cv::Mat mat = cv::imread("a.jpg");std::vector<unsigned char> buff;cv::imencode(".jpg", mat, buff);// 深拷贝std::string str;str.resize(buff.size());memcpy(&str[0], buff.data(), buff.size());// 浅拷贝std::string str;str.assign(buff.begin(), buff.end());
std::string转cv::Mat把std::string当做1行N列的数据,通过引用数据指针的方式来得到mat2。此时没有发生内存拷贝。
1234567cv::Mat mat(1, str.size(), CV_8U, (char *)str.data());cv::Mat dst = cv::imdecode(ma ...
git的cherry-pick使用
使用cherry-pick将一个分支上的代码移到另一个分支上...
git commit指南
git修改commit的message...
win10开启ftp服务
win10开启ftp服务步骤...
longest-valid-parentheses
最长有效括号给你一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
示例 1:
输入:s = “(()” 输出:2 解释:最长有效括号子串是 “()”
示例 2:
输入:s = “)()())” 输出:4 解释:最长有效括号子串是 “()()”
示例 3:
输入:s = “” 输出:0
提示:
0 <= s.length <= 3 * 104
s[i] 为 ‘(‘ 或 ‘)’
Solution1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include <iostream>#include <string>using namespace std;class Solution {public: int longestValidParentheses(string s) { if (s.empty()) { ...
next-permutation
下一个排列实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。
示例 1:
输入:nums = [1,2,3] 输出:[1,3,2]
示例 2:
输入:nums = [3,2,1] 输出:[1,2,3]
示例 3:
输入:nums = [1,1,5] 输出:[1,5,1]
示例 4:
输入:nums = [1] 输出:[1]
Solution1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include <iostream>#include <vector>#include <bits/stdc++.h>c ...
数字的补数
数字的补数对整数的二进制表示取反(0 变 1 ,1 变 0)后,再转换为十进制表示,可以得到这个整数的补数。
例如,整数 5 的二进制表示是 “101” ,取反后得到 “010” ,再转回十进制表示得到补数 2 。给你一个整数 num ,输出它的补数。
示例 1:
输入:num = 5 输出:2 解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。
示例 2:
输入:num = 1 输出:0 解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。
提示:
1 <= num < 231
Solution1234567891011121314151617181920212223242526#include <iostream>class Solution {public: int findComplement(int num) { if (num == 0) { return 1; ...
串联所有单词的子串
串联所有单词的子串给定一个字符串s和一些长度相同的单词words 。找出s中恰好可以由words中所有单词串联形成的子串的起始位置。注意子串要与words中的单词完全匹配,中间不能有其他字符 ,但不需要考虑words中单词串联的顺序。
示例 1:
输入:s = “barfoothefoobarman”, words = [“foo”,”bar”] 输出:[0,9] 解释: 从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。 输出的顺序不重要, [9,0] 也是有效答案。
示例 2:
输入:s = “wordgoodgoodgoodbestword”, words = [“word”,”good”,”best”,”word”] 输出:[]
示例 3:
输入:s = “barfoofoobarthefoobarman”, words = [“bar”,”foo”,”the”] 输出:[6,9,12]
提示:
1 <= s.length <= 104
s 由小写英文字母组成
1 <= words.length ...