Assign different classes to alternating blog posts?

If you want the items to be grouped inside a row, you can use this code instead

{% for content in contents %}
 {{ '<div class="row">' if loop.index % 2 != 0 }}

 <div class="post-item {% cycle 'width-one-third','width-two-thirds', 'width-two-thirds','width-one-third' %}">
 ...
 </div>

 {{ '</div>' if loop.index % 2 == 0 }}
{% endfor %}