敦煌網(wǎng)站銷售員怎么做引擎優(yōu)化
題解:
利用異或運(yùn)算 a⊕a = 0 的性質(zhì),可用來(lái)消除所有出現(xiàn)了兩次的元素,最后剩余的即為所得。
class Solution
{
public:int singleNumber(vector<int>& nums){// 初始化為0int ans = 0;for(int x: nums){// 異或操作ans ^= x;}return ans;}
};
sort排序法的兩種解法:
解1:
class Solution
{
public:int majorityElement(vector<int>& nums){sort(nums.begin(), nums.end());//因?yàn)槌霈F(xiàn)頻率大于n/2,所以排序后的中間位置必然是眾數(shù)return nums[nums.size() / 2];}
};
解2:
// 先將元素繼續(xù)排序 然后進(jìn)行計(jì)數(shù),如果當(dāng)前位與下一位相同直接進(jìn)行計(jì)數(shù)加一然后比較一下是否超過(guò) n/2;
class Solution1
{
public:int majorityElement(vector<int>& nums){if (nums.size() == 1) return nums[0];sort(nums.begin(), nums.end());int count = 0;for (int i = 0; i < nums.size() - 1; i++){if (nums[i] == nums[i + 1]){count ++ ;}if (count + 1 > nums.size() / 2)return nums[i];}return 0;}
};