Find a maximum subset of nodes such that each node has at least two neighbors of different colors.
Remove nodes that cannot be part of any interesting subset, and repeat.
Let’s call a vertex “bad” if all its neighbors are the same color. Obviously, we can’t have any bad vertices in our interesting subset, so let’s remove them from the graph.
This might introduce some more bad vertices, but we can keep repeating this process (this is illustrated in the last sample case).
Now, if we have no bad vertices, we claim that the subset is interesting. Of course, this follows from the definition of an interesting subset. What about maximum size?
Well, we only removed vertices that had no way of being part of an interesting subset. Thus, we must have a subset of maximum size at the end since we never removed something that could be part of an interesting subset.