首页 > 其他分享 >[LeetCode] 1333. 餐厅过滤器

[LeetCode] 1333. 餐厅过滤器

时间:2023-09-27 21:33:03浏览次数:35  
标签:题目 int 1333 v1 v2 vector 过滤器 排序 LeetCode

Problem: 1333. 餐厅过滤器

思路

这道题目拿到手基本可以确定是一道大模拟题,基本思路在题目里面已经确定,主要的难点就在对结果的排序上,需要指定sort的排序规则

解题方法

首先对题目中给出的数组依照题目要求的过滤器规则进行遍历过滤,然后形成一个过滤后的新数组filtered,接着按照题目要求编写排序规则,即先按照rating从高到低进行排序,相同情况下再按照id从高到低排序,最后将排序后数组返回即可

Code


class Solution {
public:
  vector<int> filterRestaurants(vector<vector<int>>& restaurants, int veganFriendly, int maxPrice, int maxDistance) {
      vector<vector<int>> filtered;
      int size = restaurants.size();
      for(int i=0;i<size;i++)
      {
          if(restaurants[i][3] <= maxPrice && restaurants[i][4] <= maxDistance && !(veganFriendly && !restaurants[i][2])){
              filtered.push_back(restaurants[i]);
          }
      }
      sort(filtered.begin(), filtered.end(), [](vector<int> &v1, vector<int> &v2) -> bool{
          return v1[1] > v2[1] || (v1[1]==v2[1] && v1[0] > v2[0]);
      });
      vector<int> ans;
      for(auto &value:filtered){
          ans.push_back(value[0]);
      }
      return ans;
  }
};

标签:题目,int,1333,v1,v2,vector,过滤器,排序,LeetCode
From: https://blog.51cto.com/u_15567308/7629106

相关文章

  • 算法训练day22 LeetCode235
    算法训练day22LeetCode235.701.450.235.二叉搜索树的最近公共祖先题目235.二叉搜索树的最近公共祖先-力扣(LeetCode)题解代码随想录(programmercarl.com)对于二叉树,可以用递归回溯的方式对于二叉搜索树,由其根节点大于左右子树中结点,所以当第一次遍历到根节点值......
  • 刷这几道LeetCode,掌握哈希表的三种类型
    基础知识常用代码  哈希表一共有3种哈希结构,分别是数组、set(集合)、map(映射)数组  数组就是把不同的元素映射到不同的地址运用数组创建哈希表,应当遵循以下两个原则:1.所映射的元素的数值种类不多(比如26个字母)2.映射关系比较好表达(比如26个字母,就可以用该元素-'a'作为映射)......
  • leetcode17、77
    回溯算法可以当作是二叉树的结构进行分析,看在叶节点的位置是什么条件收获结果每个抛进去的结果都是到叶子节点的路径以leetcode17为例:每一层遍历的是每一个号码对应的字符串,当号码全部遍历完成就可以返回结果,所以终止条件是(index==string.length());index是层数,string是号码。......
  • [LeetCode] 2582. Pass the Pillow
    Thereare n peoplestandinginalinelabeledfrom 1 to n.Thefirstpersoninthelineisholdingapillowinitially.Everysecond,thepersonholdingthepillowpassesittothenextpersonstandingintheline.Oncethepillowreachestheendofthel......
  • LeetCode54.螺旋数组
    本题关键在于模拟数组螺旋的步骤,使用 flag 二维数组标识矩阵某位置是否被访问过,使用 turn 变量指示当前寻找的方向, turn 为0时,代表向右查找, turn 为1时,代表向下查找, turn 为2时,代表向左查找, turn 为3时,代表向上查找,具体的代码如下:classSolution{publicList<......
  • 算法训练day20 LeetCode654
    算法训练day20LeetCode654.617.700.98654.最大二叉树题目654.最大二叉树-力扣(LeetCode)题解代码随想录(programmercarl.com)使用递归返回节点地址,输入父节点地址,数组终止条件是输入地数组为空单层操作:如果输入数组为空,则返回父节点地址否则找到数组中最大......
  • LeetCode 918. 环形子数组的最大和
    环形子数组的最大和(medium)题目链接:918.环形子数组的最大和题目描述:给定一个长度为n的环形整数数组nums,返回nums的非空子数组的最大可能和。环形数组意味着数组的末端将会与开头相连呈环状。形式上,nums[i]的下一个元素是nums[(i+1)%n],nums[i]的前一个元素......
  • LeetCode 53. 最大子数组和
    最大子数组和(medium)题目链接:53.最大子数组和题目描述:给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。示例1:输入:nums=[-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1]的和最大......
  • leetcode21. 合并两个有序链表
    合并两个有序链表题目链接21.合并两个有序链表将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=[0]输出:[0......
  • 18-过滤器
    过滤器(Vue3已经移除)定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理) 注册过滤器://全局过滤器Vue.filter(name,callback)//局部过滤器newVue{filters:{}} 使用过滤器:{{xxx|过滤器名}}或v-bind:属性="xxx|过滤器名" 备注:1)过滤器......