Frequency Queries

  • + 0 comments

    C# static List freqQuery(List> queries) { List result = new List(); Dictionary counts = new Dictionary();

    foreach (var query in queries)
    {
        int operation = query[0];
        int value = query[1];
        counts.TryGetValue(value, out int current);
    
        switch (operation)
        {
            case 1:
                {
                    if (counts.ContainsKey(value))
                    {
                        counts[value]++;
                    }
                    else
                    {
                        counts.Add(value, current + 1);
                    }
                    break;
                }
            case 2:
                {
                    if (current > 0)
                    {
                        if (counts.ContainsKey(value))
                        {
                            counts[value]--;
                        }
                        else
                        {
                            counts.Add(value, current - 1);
                        }
                    }
                    break;
                }
            case 3:
                {
                    var contains = counts.ContainsValue(value);
                    result.Add(contains ? 1 : 0);
                    break;
                }
        }
    }
    
    return result;
    

    }