Если это можно сверстать одним классом, то как это сделать
В один не получится. Либо класс будет у списка, а li сделаете дочерним селектором по классу.
Но я имею в виду, что судя по скрину, в один селектор не выйдет, там намек на flex-grow, а его задают флекс-элементам.
Если grow не нужен, то да, просто flex и flex-wrap списку.
Если нужен, то соответственно, задавайте его детям. И ещё ::after для родителя, чтобы на последней строке не было слишком большого растяжения (опять таки, если нужно)