首页 > 编程语言 >代码随想录算法训练营|Day01 LeetCode 704.二分查找,27.移除元素,977.有序数组的平方

代码随想录算法训练营|Day01 LeetCode 704.二分查找,27.移除元素,977.有序数组的平方

时间:2024-09-02 23:47:10浏览次数:13  
标签:977 nums int 随想录 fast vector 数组 移除 LeetCode

数组理论基础

  • 数组是存放在连续空间上的相同类型数据的集合
  • 数组的元素是不能删的,只能覆盖

704.二分查找

LeetCode:704.有序数组的平方

class Solution {
public:
    int search(vector<int>& nums, int target)
    {
           int length = nums.size();

        int i = 0, j = length - 1;
       
        while (i <= j)
        {
            //左闭右闭
             
            int mid = (i + j) / 2;

            if (target < nums[mid])//左区间
            {
                j = mid - 1;
            }
            else if(target>nums[mid])//右区间
            {
                i = mid + 1;
            }
            else
            {
                return mid;
            }
        }
        return -1;//未找到
    }
};

27.移除元素

LeetCode:27.移除元素

class Solution {
public:
    int removeElement(vector<int>& nums, int val)
    {
        //双指针法:快慢指针
        int slow=0, fast = 0;
        for (fast; fast < nums.size(); fast++)
        {
            if (nums[fast] != val)
            {
                nums[slow] = nums[fast];
                slow++;
            }
        }
        return slow;
    }
};

977.有序数组的平方

LeetCode:977.有序数组的平方

暴力法

class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums)
    {

		for(int i=0;i<nums.size();i++)
        {
            nums[i] = nums[i] * nums[i];
        }
        sort(nums.begin(), nums.end());

        return nums;

    }
};

双指针法

class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {

// 双指针法
        int l = nums.size() - 1;
        vector<int> result(nums.size(), 0);
        int i = 0, j = l;
        while (i <= j)
        {
            if (nums[i] * nums[i] < nums[j] * nums[j])
            {
                result[l] = nums[j] * nums[j];
                l--;
                j--;

            }
            else
            {
                result[l] = nums[i] * nums[i];
                l--;
                i++;
            }
        }
        return result;
    }
};

标签:977,nums,int,随想录,fast,vector,数组,移除,LeetCode
From: https://www.cnblogs.com/FreeDrama/p/18393664

相关文章

  • 代码随想录算法训练营,9月2日 | 242.有效的字母异位词,349. 两个数组的交集,202. 快乐数,1
    哈希表理论基础1.根据关键码的值而直接进行访问的数据结构(直白来讲其实数组就是一张哈希表,哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素);2.哈希表都是用来快速判断一个元素是否出现集合里;3.哈希函数:把值对应到哈希表的函数;哈希碰撞:映射到哈希表同一个索引......
  • 【代码随想录Day6】哈希表Part01|判断一个元素是否出现集合里
    哈希表理论基础文章讲解:哈希表理论基础要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。242.有效的字母异位词题目链接/文章讲解/视频讲解:有效的字母异位词定义一个哈希表record,遍历s,记录s中每个字母出现的次数,遍历t,减去t中每个字母出现的次数,遍历......
  • 将Laravel项目中的"Remove public directory"翻译成中文为"移除公共目录"
    将"Removepublicdirectory"翻译成中文为"移除公共目录"是正确的。"public"通常指的是公共的、共享的或公开的,"directory"则是目录、文件夹的意思。因此,"Removepublicdirectory"的意思是移除公共目录,即删除或取消该目录的公共访问权限,或者将其从项目中删除。这样的翻译能够准......
  • 代码随想录day48 || 739, 每日温度 496, 下一个更大元素 I 503, 下一个更大元素II
    739每日温度funcdailyTemperatures(temperatures[]int)[]int{ //双指针 varres=make([]int,len(temperatures)) fori:=0;i<len(temperatures);i++{ forj:=i+1;j<len(temperatures);j++{ iftemperatures[j]>temperatures[i]{ res[i]=j......
  • 移除深层物体时遇到问题
    当你遇到移除深层物体的问题时,可能是因为物体被嵌套在其他物体中,或者因为物体的引用被其他代码所持有。以下是一些可能有助于解决问题的建议:检查物体的嵌套结构:确保你正确地遍历了物体的嵌套结构,以找到要移除的物体。你可以使用递归函数或迭代器来遍历嵌套结构。检查物体的引用:确保......
  • 代码随想录算法day4 - 哈希表2
    题目1454.四数相加II给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组(i,j,k,l)能满足:0<=i,j,k,l<nnums1[i]+nums2[j]+nums3[k]+nums4[l]==0示例1:输入:nums1=[1,2],nums2=[-2,-1],nums3=[-1,2],nums4......
  • 代码随想录刷题day13丨二叉树理论基础,递归遍历,迭代遍历,统一迭代,层序遍历
    代码随想录刷题day13丨二叉树理论基础,递归遍历,迭代遍历,统一迭代,层序遍历1.二叉树理论基础1.1二叉树种类满二叉树概述:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。这棵二叉树为满二叉树,也可以说深度为k,有2^k-1个节......
  • 「代码随想录算法训练营」第五十一天 | 图论 part9
    目录Bellman_ford算法模拟过程题目:94.城市间货物运输IBellman_ford队列优化算法(又名SPFA)模拟过程题目:94.城市间货物运输IBellman_ford算法之判断负权回路题目:95.城市间货物运输IIBellman_ford算法之单源有限最短路题目:96.城市间货物运输IIIBellman_ford算法Bellman_ford算法......
  • 代码随想录算法day5 - 哈希表1
    题目1242.有效的字母异位词给定两个字符串*s*和*t*,编写一个函数来判断*t*是否是*s*的字母异位词。字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,通常只使用所有原始字母一次。示例1:输入:s="anagram",t="nagaram"输出:true示例2:......
  • 「代码随想录算法训练营」第五十天 | 图论 part8
    目录拓扑排序题目:117.软件构建dijkstra(朴素版)题目:47.参加科学大会dijkstra算法和prim算法的区别dijkstra(堆优化版)题目:47.参加科学大会拓扑排序拓扑排序概括来说就是给出一个有向无环图,把这个有向无环图转成线性的排序,就叫拓扑排序。使用广度优先搜索(BFS)即可。如上图,当我们......