【LeetCode每日一题】1773. 统计匹配检索规则的物品数量
给你一个数组 items
,其中 items[i] = [typei, colori, namei]
,描述第 i
件物品的类型、颜色以及名称。
另给你一条由两个字符串 ruleKey
和 ruleValue
表示的检索规则。
如果第 i
件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 :
ruleKey == "type"
且ruleValue == typei
。ruleKey == "color"
且ruleValue == colori
。ruleKey == "name"
且ruleValue == namei
。
统计并返回 匹配检索规则的物品数量 。
class Solution { public int countMatches(List<List<String>> items, String ruleKey, String ruleValue) { //将对象关键字存起来 int target = -1; switch(ruleKey){ case "type": target = 0; break; case "color": target = 1; break; case "name": target = 2; break; default: break; }; if(target == -1){ return -1; }//比较 int res = 0; for(List<String> values : items){ if(values.get(target).equals(ruleValue)){ res++; } } return res; } } 在考虑目标元素下标的时候,可以使用更简单的?:判断 即 int target = ruleKey.equals("type")?0:ruleKey.equals("color")?1:2; 第一种使用存储空间46.2MB,第二种46MB节省了0.2的内存空间,在实际应用中影响不大但是当数量堆积到一定程度上之后,代码的简洁美观加上节省的内存空间有可能成为一个很重要的地方。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 标签:break,target,int,1029,ruleValue,ruleKey,items From: https://www.cnblogs.com/wzxxhlyl/p/16838078.html