50
50
class Solution :
51
51
def halfQuestions (self , questions : List[int ]) -> int :
52
52
counter = Counter(questions)
53
- counter = OrderedDict(counter.most_common())
54
53
n = len (questions) >> 1
55
- res = 0
56
- for v in counter.values ():
57
- res += 1
54
+ ans = 0
55
+ for i, v in counter.most_common ():
56
+ ans += 1
58
57
if v >= n:
59
- return res
58
+ return ans
60
59
n -= v
61
- return res
60
+ return ans
62
61
```
63
62
64
63
### ** Java**
@@ -69,20 +68,17 @@ class Solution:
69
68
class Solution {
70
69
public int halfQuestions (int [] questions ) {
71
70
int [] counter = new int [1010 ];
72
- for (int e : questions) {
73
- ++ counter[e ];
71
+ for (int q : questions) {
72
+ ++ counter[q ];
74
73
}
75
- int n = questions. length >> 1 ;
76
74
Arrays . sort(counter);
77
- int res = 0 ;
78
- for (int i = counter. length - 1 ; i >= 0 ; -- i) {
79
- ++ res;
80
- if (counter[i] >= n) {
81
- return res;
82
- }
75
+ int ans = 0 ;
76
+ int n = questions. length >> 1 ;
77
+ for (int i = counter. length - 1 ; n > 0 ; -- i) {
78
+ ++ ans;
83
79
n -= counter[i];
84
80
}
85
- return res ;
81
+ return ans ;
86
82
}
87
83
}
88
84
```
@@ -94,17 +90,16 @@ class Solution {
94
90
public:
95
91
int halfQuestions(vector<int >& questions) {
96
92
vector<int > counter(1010);
97
- for (int e : questions) ++counter[ e ] ;
93
+ for (int q : questions) ++counter[ q ] ;
98
94
int n = questions.size() >> 1;
99
95
sort(counter.begin(), counter.end());
100
- int res = 0;
101
- for (int i = counter.size() - 1; i >= 0; --i)
96
+ int ans = 0;
97
+ for (int i = counter.size() - 1; n > 0; --i)
102
98
{
103
- ++res;
104
- if (counter[ i] >= n) return res;
99
+ ++ans;
105
100
n -= counter[ i] ;
106
101
}
107
- return res ;
102
+ return ans ;
108
103
}
109
104
};
110
105
```
@@ -114,23 +109,43 @@ public:
114
109
```go
115
110
func halfQuestions(questions []int) int {
116
111
counter := make([]int, 1010)
117
- for _, e := range questions {
118
- counter[e ]++
112
+ for _, q := range questions {
113
+ counter[q ]++
119
114
}
120
115
n := len(questions) >> 1
121
116
sort.Ints(counter)
122
- res := 0
123
- for i := len(counter) - 1; i >= 0; i-- {
124
- res++
125
- if counter[i] >= n {
126
- return res
127
- }
117
+ ans := 0
118
+ for i := len(counter) - 1; n > 0; i-- {
119
+ ans++
128
120
n -= counter[i]
129
121
}
130
- return res
122
+ return ans
131
123
}
132
124
```
133
125
126
+ ### ** JavaScript**
127
+
128
+ ``` js
129
+ /**
130
+ * @param {number[]} questions
131
+ * @return {number}
132
+ */
133
+ var halfQuestions = function (questions ) {
134
+ let counter = new Array (1010 ).fill (0 );
135
+ for (const q of questions) {
136
+ ++ counter[q];
137
+ }
138
+ counter .sort ((a , b ) => b - a);
139
+ let ans = 0 ;
140
+ let n = questions .length >> 1 ;
141
+ for (let i = 0 ; n > 0 ; ++ i) {
142
+ ++ ans;
143
+ n -= counter[i];
144
+ }
145
+ return ans;
146
+ };
147
+ ```
148
+
134
149
### ** ...**
135
150
136
151
```
0 commit comments