intlargestSumAfterKNegations(vector<int>& nums,int k){int n = nums.size(), m =0, minElem = INT_MAX, ret =0;// 求负数个数 & 最小值for(constauto& x : nums){if(x <0){m++;}minElem =min(minElem,abs(x));}// 分类讨论if(m > k){sort(nums.begin(), nums.end());for(int i =0; i < k; i++){ret +=-nums[i];}for(int i = k; i < n; i++){ret += nums[i];}}else{// 把所有负数变成正数for(constauto& x : nums){ret +=abs(x);}if((k - m)%2){ret -=2* minElem;}}return ret;}
2.身高排序
1.题目链接
身高排序
2.算法原理详解
解法一:创建二元组
创建一个新的数组pair<int, string>
对新的数组排序
按照顺序把名字提取出来即可
解法二:利用哈希表存下映射关系
先用哈希表存下映射关系<身高,名字>
对身高数组排序
根据排序后的结果,在哈希表里面找名字即可
缺点:不可存重复的KEY值
解决方法:map<int, string[]>
可以,但仍略显复杂
解法三:对下标排序(很常用的方法)
创建一个下标数组
仅需对下标数组排序
根据下标数组排序后的结果,找到原数组的信息
3.代码实现
vector<string>sortPeople(vector<string>& names, vector<int>& heights){int n = names.size();vector<int>index(n);// 下标数组for(int i =0; i < n; i++){index[i]= i;}// 对下标进行排序sort(index.begin(), index.end(),[&](int i,int j){return heights[i]> heights[j];});// 从下标数组取结果vector<string> ret;for(constauto& x : index){ret.push_back(names[x]);}return ret;}
3.优势洗牌
1.题目链接
优势洗牌
2.算法思路详解
思路:
排序
nums1直接排序
nums2下标排序 —> 为了不影响原数组的相对顺序
如果比不过,就去拖累对面最强的一个
如果能比过,直接比即可
3.代码实现
vector<int>advantageCount(vector<int>& nums1, vector<int>& nums2){int n = nums1.size();vector<int>index(n);for(int i =0; i < n; i++){index[i]= i;}// 排序sort(nums1.begin(), nums1.end());sort(index.begin(), index.end(),[&](int i,int j){return nums2[i]< nums2[j];});// 田忌赛马vector<int>ret(n);int left =0, right = n -1;for(constauto& x : nums1){if(nums2[index[left]]< x){ret[index[left++]]= x;}else{ret[index[right--]]= x;}}return ret;}
4.最长回文串
1.题目链接
最长回文串
2.代码实现
intlongestPalindrome(string s){int hash[128]={0};for(constauto& ch : s){hash[ch]++;}int ret =0;for(constauto& x : hash){ret += x /2*2;// 奇偶混合处理}return ret < s.size()? ret +1: ret;}
第一步打开idea设置窗口(setting窗口默认快捷键CtrlAltS) 第二步搜索找到Inspections 第三步勾选主窗口中Java->Serializations issues->下的Serializable class without serialVersionUID’项 ,并点击“OK”确认 第四步鼠标选中要加…
DeepSORT(目标跟踪算法)中卡尔曼增益的理解
flyfish
先用最简单的例子来理解卡尔曼增益
公式 (1)
首先,通过多次测量一个物理量,并使用取平均值的方式来计算其真实值: x ^ k 1 k ( z 1 z 2 ⋯ z k ) \hat{x}_…